Gradle用风味和尺寸签名 [英] Gradle signing with flavors and dimensions
本文介绍了Gradle用风味和尺寸签名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有谁知道如何独立签署多个应用程序,并生成多种风格和维度?
我尝试检索任务的名称以提供签名配置,但它不起作用。
does anyone know how to sign independently several applications generated with multiple flavors AND dimensions? I tried to retrieve the name of the task to provide the signing config but it didn't work.
这是我的gradle文件:
Here is my gradle file:
signingConfigs {
vanillaPaid {
...
}
vanillaFree {
...
}
chocolatePaid {
...
}
chocolateFree {
...
}
}
flavorDimensions "taste", "type"
productFlavors {
vanilla {
dimension "taste"
applicationIdSuffix ".vanilla"
}
chocolate {
dimension "taste"
applicationIdSuffix ".chocolate"
}
free {
dimension "type"
...
}
paid {
dimension "type"
...
}
}
buildTypes {
release {
def taskNames = project.gradle.startParameter.taskNames
if (taskNames.size() > 0) {
if (taskNames.get(0).contains('VanillaPaid')) {
signingConfig signingConfigs.vanillaPaid
} else if (taskNames.get(0).contains('VanillaFree')) {
signingConfig signingConfigs.vanillaFree
} else if(...) {
...
}
}
...
}
debug {
...
}
}
推荐答案
解决方案是:
The solution is:
signingConfigs {
vanillaPaid {
...
}
vanillaFree {
...
}
chocolatePaid {
...
}
chocolateFree {
...
}
}
flavorDimensions "taste", "type"
productFlavors {
vanilla {
dimension "taste"
applicationIdSuffix ".vanilla"
}
chocolate {
dimension "taste"
applicationIdSuffix ".chocolate"
}
free {
dimension "type"
...
}
paid {
dimension "type"
...
}
}
applicationVariants.all { variant ->
if (variant.name.equals("vanillaPaidRelease")) {
variant.mergedFlavor.setSigningConfig(signingConfigs.vanillaPaid)
} else if (variant.name.equals("vanillaFreeRelease")) {
variant.mergedFlavor.setSigningConfig(signingConfigs.vanillaFree)
} else if (variant.name.equals("chocolatePaidRelease")) {
variant.mergedFlavor.setSigningConfig(signingConfigs.chocolatePaid)
} else if (variant.name.equals("chocolateFreeRelease")) {
variant.mergedFlavor.setSigningConfig(signingConfigs.chocolateFree)
}
}
buildTypes {
release {
...
}
debug {
...
}
}
如果需要,还可以设置应用程序标识符:
It is also possible to set application identifier if needed:
applicationVariants.all { variant ->
if (variant.name.equals("vanillaFreeRelease")) {
variant.mergedFlavor.setSigningConfig(signingConfigs.vanillaFree)
variant.mergedFlavor.setApplicationId("com.domain.custom.id")
} else if (...) {
...
}
}
这篇关于Gradle用风味和尺寸签名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文