我有一个具有两个 productFlavors
的应用:
flavorDimensions "type", "country"
productFlavors {
free {
dimension "type"
}
premium {
dimension "type"
}
us {
dimension "country"
}
de {
dimension "country"
}
}
这会产生四个buildVariants
(忽略构建类型)。
现在我的挑战是为这四个变体设置不同的 applicationId
,但我不知道如何做到这一点。
我发现实际更改 applicationId
的唯一方法是在 productFlavors
定义中,如下所示:
productFlavors {
free {
applicationId "some.application.id"
dimension "type"
}
但问题是,例如,flavor
实际上是 freeDe
,我想为该组合设置 applicationId
。
我尝试过:
productFlavors {
freeDe {
applicationId "some.random.id"
}
和
productFlavors {
free {
de {
applicationId "some.random.id"
}
}
还有很多其他组合,但似乎都不起作用。
重要提示:我不能使用前/后缀,因为应用程序 ID 彼此完全不同:(
非常感谢您的帮助!
谢谢,祝一切顺利!
最佳答案
使用它
android.applicationVariants.all { variant ->
def mergedFlavor = variant.mergedFlavor
switch (variant.flavorName) {
case "freeUs":
mergedFlavor.setApplicationId("com.application.id.freeUs")
break
case "freeDe":
mergedFlavor.setApplicationId("com.application.id.freeDe")
break
}
}
关于android - 在 gradle 中设置 applicationId 以实现组合产品 flavor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51765667/