grA*_*uit 2 android build gradle android-productflavors
我有两个应用程序productFlavors:
flavorDimensions "type", "country"
productFlavors {
free {
dimension "type"
}
premium {
dimension "type"
}
us {
dimension "country"
}
de {
dimension "country"
}
}
Run Code Online (Sandbox Code Playgroud)
这导致四个buildVariants(忽略构建类型)。
现在,我面临的挑战是applicationId为这四个变体设置不同的,但是我不知道该怎么做。我发现真正更改的唯一方法applicationId是在productFlavors定义内,如下所示:
productFlavors {
free {
applicationId "some.application.id"
dimension "type"
}
Run Code Online (Sandbox Code Playgroud)
但问题是,flavor实际上是freeDe,并且我想applicationId为合并后的那个设置。
我试过了:
productFlavors {
freeDe {
applicationId "some.random.id"
}
Run Code Online (Sandbox Code Playgroud)
和
productFlavors {
free {
de {
applicationId "some.random.id"
}
}
Run Code Online (Sandbox Code Playgroud)
和许多其他组合,但似乎都不起作用。
重要提示:我不能为此使用前置/后缀,因为应用程序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
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
524 次 |
| 最近记录: |