问题描述
我需要使用特定的签名配置对产品风味进行签名.我在stackoverflow上找到了一些参考,例如 this 和此.它适用于我的flavor发布版本,但不适用于调试版本.我在gradle中有此配置:
I need to sign a product flavor with an specific signing configuration. I found some reference here at stackoverflow like this and this. It is working for my release version of flavor, but not the debug one. I have this configuration in gradle:
...
signingConfigs {
release {
storeFile file("../config/keystores/release_keystore")
storePassword "mysecurepassword"
keyAlias "myultrasecurealias"
keyPassword "myreallysecurekeypassword"
}
debug {
storeFile file("../config/keystores/debug.keystore")
storePassword "mysecurepassword"
keyAlias "myultrasecurealias"
keyPassword "myreallysecurekeypassword"
}
other {
storeFile file("../config/keystores/other")
storePassword "mysecurepassword"
keyAlias "myultrasecurealias"
keyPassword "myreallysecurekeypassword"
}
}
flavorDimensions "dim"
productFlavors {
production {
dimension "dim"
}
other {
dimension "dim"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
productFlavors.other.signingConfig signingConfigs.other
productFlavors.production.signingConfig signingConfigs.release
}
debug {
productFlavors.other.signingConfig signingConfigs.other
productFlavors.production.signingConfig signingConfigs.debug
}
}
这对于口味otherRelease
非常有效.但是,当我使用构建配置otherDebug
时,我的APK没有被other
签名配置所分隔.release
版本已正确签名.
This works pretty well for the flavor otherRelease
. But my APK is not being sigined with other
signing configuration when I use the build configuration otherDebug
.The release
version was signed correctly.
有人知道为什么在调试模式下签名配置未按配置应用吗?
Does anyone knows why in debug mode the signing configuration is not being applied as configured?
推荐答案
由于@AllanHasegawa在另一个问题中的评论,我终于找出了问题所在:.简而言之,我必须在buildTypes
内添加signingConfig null
,因为Android添加了一些默认的签名配置.即使我试图覆盖它.根据我的问题的完整示例:
I finally figured out what was wrong, thanks to @AllanHasegawa with his comment in another issue: Signing product flavors with gradle . For short, I had to add signingConfig null
inside buildTypes
because Android adds some default signing configuration. Even though I was trying to override it. Complete example based on my question:
...
signingConfigs {
release {
storeFile file("../config/keystores/release_keystore")
storePassword "mysecurepassword"
keyAlias "myultrasecurealias"
keyPassword "myreallysecurekeypassword"
}
debug {
storeFile file("../config/keystores/debug.keystore")
storePassword "mysecurepassword"
keyAlias "myultrasecurealias"
keyPassword "myreallysecurekeypassword"
}
other {
storeFile file("../config/keystores/other")
storePassword "mysecurepassword"
keyAlias "myultrasecurealias"
keyPassword "myreallysecurekeypassword"
}
}
flavorDimensions "dim"
productFlavors {
production {
dimension "dim"
}
other {
dimension "dim"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
// this loop is a better implementation than my previous example
productFlavors.all { flavor ->
flavor.signingConfig signingConfigs.release
}
productFlavors.other.signingConfig signingConfigs.other
}
debug {
signingConfig null
// this loop is a better implementation than my previous example
productFlavors.all { flavor ->
flavor.signingConfig signingConfigs.debug
}
productFlavors.other.signingConfig signingConfigs.other
}
}
这篇关于Android风格签名无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!