项目场景:
使用命令行生成apk的时候自动签名
打包命令
Linux
# 同时生成release和debug的apk./gradlew clean build./gradlew clean assemble# 分别打包release和debug的apk./gradlew clean assembleDebug./gradlew clean assembleRelease
Windows
# 同时生成release和debug的apkgradlew.bat clean buildgradlew.bat clean assemble# 分别打包release和debug的apkgradlew.bat clean assembleDebuggradlew.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=123456keyPassword=123456keyAlias=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和debug apkrelease {...signingConfig signingConfigs.config}debug {....signingConfig signingConfigs.config}}}
全文参考链接:
1、应用签名相关步骤
2、android gradle使用技巧,其中gradle中配置签名就在其中
3、Android gradle配置生成的apk名称以及修改存放位置
如果觉得《Android gradle配置签名文件》对你有帮助,请点赞、收藏,并留下你的观点哦!