项目场景:
使用命令行生成apk的时候自动签名
打包命令
Linux
# 同时生成release和debug的apk
./gradlew clean build
./gradlew clean assemble
# 分别打包release和debug的apk
./gradlew clean assembleDebug
./gradlew clean assembleRelease
Windows
# 同时生成release和debug的apk
gradlew.bat clean build
gradlew.bat clean assemble
# 分别打包release和debug的apk
gradlew.bat clean assembleDebug
gradlew.bat clean assembleRelease
通过Task打包apk
1、开启task 2、开始使用Task功能进行构建
解决方案:
1、首先需要创建签名文件
Android官网介绍了如何通过Android studio生成签名,并且使用签名打包apk
查看完整的步骤请看参考上述官网,此处就放一个官网的截图(也够用)
2、需要将签名配置在application build.gradle中
android gradle使用技巧,其中gradle中配置签名就在其中 上述官网文档有介绍,并且还有其他gradle使用技巧,可以查阅官网(毕竟官网东西真的很多)
- 在项目的根目录下创建一个名为 keystore.properties 的文件,并使其包含以下信息:
以下演示的是放在Project的根目录中,也可以放在Application module的根目录
storePassword=123456
keyPassword=123456
keyAlias=TestKeyAlias
# 放在Project的根目录
storeFile=../keystore.jks
# 放在Application module的根目录
#storeFile=keystore.jks
- 在 build.gradle 文件中,按如下方式加载 keystore.properties 文件(必须在 android 代码块前面):
def keystorePropertiesFile = rootProject.file("keystore.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
android {
...
}
- 输入存储在 keystoreProperties 对象中的签名信息(
需要配置在buildTypes 之前):
android {
signingConfigs {
config {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
...
}
}
- 最终在buildTypes中将签名文件配置给release和debug
android {
signingConfigs {
...
}
buildTypes {
release {
...
signingConfig signingConfigs.config
}
debug {
....
signingConfig signingConfigs.config
}
}
}
全文参考链接:
1、应用签名相关步骤 2、android gradle使用技巧,其中gradle中配置签名就在其中 3、Android gradle配置生成的apk名称以及修改存放位置
|