前提要有jks签名文件,如何创建看上一篇
1.编辑app/build.gradle文件,在android闭包中添加如下内容:
signingConfigs{
config{
storeFile file('/Users/zhangqianqian/Documents/signature/zhangqianqian.jks')
storePassword '970421'
keyAlias 'zhangqianqiandev'
keyPassword '970421'
}
}
该闭包,配置keystore文件的各种信息。
2.签名配置好后,只需要在生成正式版APK之前将签名配置进去,继续编辑app/build.gradle
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.config
}
}
在buildTypes中的release闭包中应用添加的签名配置,这样当生成正式版APK文件的时候就会自动使用刚才配置的签名信息来签名。
3.build.gradle配置完,利用Android studio中内置的Gradle Tasks,其中就包括了生成APK文件的Task.
点击右侧工具栏Gradle–>项目名–>:app–>Tasks–>build
其中assembleDebug生成测试版的APK文件,assemableRelease生成正式版的APK文件,assemable生成测试版和正式版的APK文件,在生成apk之前,先双击clean这个Task来清理一下这个项目,然后再双击点击assemableRelease,结果
APK文件自动生成在app/build/outputs/apk/release中
⚠️注意:
目前keystore文件的所有信息都是以明文的形式直接配置在build.gradle中的,太不安全。推荐将这类敏感数据配置在一个独立的文件里面,然后再在build.gradle中去读取这些数据。
AndroidStudio项目的根目录下有一个gradle.properties文件,专门用来配置全局键值对数据,所以在gradle.properties文件中添加如下内容:
KEY_PATH=/Users/zhangqianqian/Documents/signature/zhangqianqian.jks
KEY_PASS=970421
ALIAS_NAME=zhangqianqiandev
ALIAS_PASS=970421
在build.gradle中去读取这些数据,编辑app/build.gradle文件:
signingConfigs{
config{
storeFile file (KEY_PATH)
storePassword KEY_PASS
keyAlias ALIAS_NAME
keyPassword ALIAS_PASS
}
}
为了避免gradle.properties文件数据泄漏,建议gradle.properties文件从git/svn中排除!
参考书籍:《第一行代码》–郭霖