gradle本身支持直接签名,只需要在releas部分添加如下代码即可
signingConfigs {
debug {
storeFile file("CaviarAppkey.jks")
storePassword "liangzi2017"
keyAlias "key"
keyPassword "liangzi2017"
}
release.initWith(signingConfigs.debug)}
一般填上上面的代码即可执行签名,但是这种方式不太安全,建议不要在build.gradle文件中写上签名文件的密码,因为build.gradle文件一般都会集成到代码的版本控制中,这样所有人都会有签名文件的密码。
所以应该把签名文件的密码隔离起来,写到一个配置文件中,此配置文件不包含在代码版本控制中,这样其他开发者就不会知道签名文件的密码。
gradle配置文件一般以.properties结束,我们先新建一个signing.properties文件,内容如下
STORE_FILE=yourapp.keystore
STORE_PASSWORD=your password
KEY_ALIAS=your alias
KEY_PASSWORD=your password
注意没有字符串双引号""
接下在guild.gradle文件中读取signing.properties配置文件,读取的代码如下:
task getPassWD << {
defpassword =''
File propFile =rootProject.file('signing.properties');
if(propFile.exists()) {
println'exists'
defProperties props =newProperties()
props.load(newFileInputStream(propFile))
password = props.getProperty("KEY_PASSWORD")
println"$password"
android.signingConfigs.release.storeFile = file(props['STORE_FILE'])
android.signingConfigs.release.storePassword = props['STORE_PASSWORD']
android.signingConfigs.release.keyAlias = props['KEY_ALIAS']
android.signingConfigs.release.keyPassword = props['KEY_PASSWORD']
}else{
println'no exists'}}
代码很简单,就是读取文件,然后拿到签名需要的四个变量值分别赋值即可。
网友评论