ApkSign 爲apk提供快速簽名,解放雙手,實現自動化流程。解決 「騰訊樂固」加固後沒簽名等各類須要快速簽名的應用場景android
在位於項目的根目錄 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項目裏的 buildToolsVersion
。app
signJarFilePath
,buildToolsVersion
都配置時,優化級爲 signJarFilePath
> buildToolsVersion
;當兩個配置項都不配置時,默認使用 android項目裏的 buildToolsVersion
。gradle
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