首先,这是我的signinConfigs:
signingConfigs {
development {
storeFile file("mykey.jks") //Path to the keystore file
keyAlias "mykey"
storePassword "mykeydev"
keyPassword "mykeydev"
}
production {
storeFile file("mykey.jks") //Path to the keystore file
keyAlias "mykey"
storePassword "mykeyprod"
keyPassword "mykeyprod"
}
}
现在我的口味:
productFlavors {
development{
applicationId "br.com.myapp.dev"
signingConfig signingConfigs.development
resValue "string", "app_name", "DEV"
}
production {
applicationId "br.com.myapp"
signingConfig signingConfigs.production
resValue "string", "app_name", "PROD"
}
}
我有buildTypes
这个:
buildTypes {
release {
minifyEnabled false
productFlavors.production.signingConfig signingConfigs.production
productFlavors.development.signingConfig signingConfigs.development
}
}
这就是我的问题,为什么每次我想要生成一个新签名的apk文件时,我都会被要求提供keyPassword和storePassword,如果所有的密钥和内容都在我的.gradle文件中?
答案 0 :(得分:1)
如果您已在gradle中提供密钥库路径和凭据。然后,为了生成签名apks,请按照以下步骤操作。
Apk将在Project / build / outputs / apk文件夹中发布
答案 1 :(得分:1)
当您使用"构建 - >构建时生成签名的apk"您需要偶尔输入Android的工作室密码,但它会保存为您加密的密码。这是最安全的方式。
但是既然你需要一种自动化方式,你可以使用"终端"查看,然后输入:./gradlew assembleRelease
。 (如果你是在Windows机器上,我认为它是gradlew assembleRelease
)。
在任何情况下,不建议在build.gradle文件中写入密码:
android {
signingConfigs {
release {
storeFile file('/your/keystore/location/key')
keyAlias 'your_alias'
keyPasswordString ps = System.getenv("ps")
storePasswordif System.getenv("ps"ps == null) {
throw new GradleException('missing ps env variable')
}
keyPassword ps
storePassword ps
}
}