android - Android 风格签名未按预期工作
问题描述
我需要使用特定的签名配置对产品风格进行签名。我在 stackoverflow 上找到了一些参考,例如this和this。它适用于我的版本版本,但不适用于调试版本。我在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
。other
但是当我使用构建配置时,我的APK 没有使用签名配置进行签名otherDebug
。该release
版本已正确签名。
有谁知道为什么在调试模式下签名配置未按配置应用?
解决方案
我终于弄清楚出了什么问题,感谢@AllanHasegawa 在另一个问题中的评论:使用 gradle 签署产品口味。简而言之,我必须在signingConfig null
里面添加,buildTypes
因为 Android 添加了一些默认的签名配置。即使我试图覆盖它。基于我的问题的完整示例:
...
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
}
}
推荐阅读
- delphi - 如何在 Delphi 10.3 替换功能中使用正则表达式捕获?
- ruby - 迁移到 Gitlab 12 后,GitlabNet 没有发现方法。有什么新方法?
- ember.js - 是否有类似于组件助手的东西,但对于 html 元素
- tkinter - Tkinter filedialog askopenfilename 函数
- jenkins - Jenkins Pipeline Utility 步骤插件
- python - 在文本文件中查找特定单词并打印输出
- ada - ADA 整数类型?
- terminal - 无法将 zsh 而不是 shell 保存到终端
- flutter - 如何在颤动中将元素推到最右边
- angular - 离子内容被推到底部并带有标题