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