[英]Use different signature for Gradle product flavour and build type in Android
我有一個 Android build.gradle.kts 具有多種風格,多種構建類型和不同的組合簽名配置,它看起來像這樣:
android {
signingConfigs {
create("lite-release") {
storeFile = file("myLiteReleaseKey.keystore")
storePassword = "litePassword"
keyAlias = "MyLiteReleaseKey"
keyPassword = "litePassword"
}
create("full-release") {
storeFile = file("myFullReleaseKey.keystore")
storePassword = "litePassword"
keyAlias = "MyFullReleaseKey"
keyPassword = "litePassword"
}
create("lite-alpha") {
storeFile = file("myLiteAlphakey.keystore")
storePassword = "password"
keyAlias = "MyLiteReleaseKey"
keyPassword = "password"
}
create("full-alpha") {
storeFile = file("myFullAlphaKey.keystore")
storePassword = "password"
keyAlias = "MyFullReleaseKey"
keyPassword = "password"
}
}
buildTypes {
getByName("release") {
isMinifyEnabled = true
isShrinkResources = true
}
create("alpha") {
initWith(getByName("release"))
versionNameSuffix = "-alpha"
applicationIdSuffix = ".alpha"
}
}
flavorDimensions += "app"
productFlavors {
create("lite") {
dimension = "app"
}
create("full") {
dimension = "app"
}
}
}
即使它應該是簡單的東西,我在嘗試分配簽名時也被卡住了。 應該是這樣的。。
productFlavors.getByName("lite") {
buildTypes.getByName("release") {
signingConfig = signingConfigs.getByName("lite-release")
}
}
productFlavors.getByName("full") {
buildTypes.getByName("release") {
signingConfig = signingConfigs.getByName("full-release")
}
}
..但是當我構建“liteRelease”時,它需要最后一個分配,即上面示例中“完全發布”的簽名。
你能告訴我如何正確地做到這一點嗎?
最后,這完成了工作:
gradle.startParameter.taskNames.forEach {
when {
it.contains("LiteRelease", true) -> {
productFlavors.getByName("lite") {
signingConfig = signingConfigs.getByName("lite-release")
}
}
it.contains("FullRelease", true) -> {
productFlavors.getByName("full") {
signingConfig = signingConfigs.getByName("full-release")
}
}
}
}
這有點容易出錯,但我找不到其他可行的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.