Android 自動化流程開發之 apk簽名 插件

ApkSign

ApkSign 爲apk提供快速簽名,解放雙手,實現自動化流程。解決 「騰訊樂固」加固後沒簽名等各類須要快速簽名的應用場景android

Gradle插件使用方式

配置build.gradle

在位於項目的根目錄 build.gradle 文件中添加 ApkSign插件的依賴, 以下:git

buildscript {
    dependencies {
        classpath 'com.zf.plugins:ApkSign:1.0.2'
    }
}
複製代碼

並在當前App的 build.gradle 文件中apply這個插件github

apply plugin: 'apksign'
複製代碼

配置插件(最簡易配置)

apkSignConfig {
    items {
        ddebug {
      		//須要簽名的APK 路徑
            inputApkFilePath file("build/outputs/apk/tap_unsign.apk").absolutePath
        }
		// ...... 能夠添加更多選項
    }
}
複製代碼

插件所有配置

apkSignConfig {

//統一配置 優先級低於自定義配置------------start-----------------------

    //可選,默認爲false。簽名完成後,是否打簽名後的apk所在目錄,只支持windows
     isOpenOutputDir true
			

    //可選,自定義簽名jar包位置
	signJarFilePath new File("E:\\Android\\sdk\\build-tools\\28.0.3\\lib\\apksigner.jar").absolutePath
	
	//可選,自定義apk包對齊命令位置
	zipalignExeFilePath new File("E:\\Android\\sdk\\build-tools\\28.0.3\\zipalign.exe").absolutePath
	
	//可選,自定簽名jar包,apk對齊命令所使用的版本,
	buildToolsVersion '28.0.3'

	//可選,自定義簽名文件
	signingInfo {
        storeFilePath "sign.jks"
        storePassword "XXXXX"
        keyAlias "XXXXXX"
        keyPassword "XXXXXX"
    }
	
	//可選,使用android項目裏,名稱爲`debug`的簽名配置
	signingName 'debug'

//統一配置-------------end----------------------
    items {
	
        release {
		
		//release 自定義配置優先統一配置------------start-----------------------
		
			//可選,默認爲統一配置裏的值。簽名完成後,是否打簽名後的apk所在目錄,只支持windows
        	isOpenOutputDir true
			
			//可選,自定簽名jar包,apk對齊命令所使用的版本,
			buildToolsVersion '28.0.3'
			
			//可選,自定義簽名jar包位置
			signJarFilePath new File("E:\\Android\\sdk\\build-tools\\28.0.3\\lib\\apksigner.jar").absolutePath

			//可選,自定義apk包對齊命令位置
			zipalignExeFilePath new File("E:\\Android\\sdk\\build-tools\\28.0.3\\zipalign.exe").absolutePath
			
				//可選,自定義簽名文件
			signingInfo {
				storeFilePath "sign.jks"
				storePassword "XXXXX"
				keyAlias "XXXXXX"
				keyPassword "XXXXXX"
			}
			
			//可選,使用android項目裏,名稱爲`debug`的簽名配置
			signingName 'debug'
			
	    //release 自定義配置優先統一配置------------end-----------------------
			
			//必選,須要簽名的APK 路徑
            inputApkFilePath file("build/outputs/apk/tap_unsign.apk").absolutePath
			
			//可選,指定簽名apk文件的輸出目錄,默認爲輸入apk所在目錄
			outputApkDirPath file("build/outputs/apk").absolutePath
			
        }

		// ...... 能夠添加更多選項
    }
}
複製代碼

配置項具體解釋:windows

  • signJarFilePath ,buildToolsVersion都配置時,優化級爲 signJarFilePath> buildToolsVersion;當兩個配置項都不配置時,默認使用 android項目裏的 buildToolsVersionapp

  • signJarFilePath ,buildToolsVersion都配置時,優化級爲 signJarFilePath > buildToolsVersion;當兩個配置項都不配置時,默認使用 android項目裏的 buildToolsVersiongradle

  • signingInfo ,signingName都配置時,優化級爲 signingInfo > signingName;當兩個配置項都不配置時,默認使用 android項目裏的默認debug簽名。優化

  • signingName='release' 簽名信息配置的名稱,ui

    android {
    		signingConfigs {
    			release {
    				storeFile signingInfo.storeFile
    				storePassword signingInfo.storePassword
    				keyAlias signingInfo.keyAlias
    				keyPassword signingInfo.keyPassword
    
    				v1SigningEnabled true
    				v2SigningEnabled true
    			}
    		}
    	}
    複製代碼

生成apk簽名包:spa

./gradlew apkSign${你的簽名配置名稱(首頁字母大小)}插件

簽名配置名稱

如上面的配置,生成簽名包須要執行以下命令:

./gradlew apkSignRelease

源碼:github.com/903600017/A…

相關文章
相關標籤/搜索