在 gradle 中设置 applicationId 以获得组合的产品风味
Posted
技术标签:
【中文标题】在 gradle 中设置 applicationId 以获得组合的产品风味【英文标题】:Setting the applicationId in gradle for a combined product flavor 【发布时间】:2019-01-16 20:08:30 【问题描述】:我有一个带有两个productFlavors
的应用:
flavorDimensions "type", "country"
productFlavors
free
dimension "type"
premium
dimension "type"
us
dimension "country"
de
dimension "country"
这导致四个buildVariants
(忽略构建类型)。
现在我的挑战是为这四个变体设置不同的applicationId
s,但我不知道该怎么做。
我发现实际更改 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 彼此完全不同 :(
非常感谢您的帮助!
谢谢,一切顺利!
【问题讨论】:
【参考方案1】:使用它
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
【讨论】:
不,我不需要设置后缀 我需要根据与现有 applicationId 无关的预定义模式更改整个 applicationId。 这似乎可行,但我还不能确认 100%,因为现在我遇到了一个新问题,无法找到所选 buildVariant 的资源。 :(以上是关于在 gradle 中设置 applicationId 以获得组合的产品风味的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 gradle 在 APK 文件名中设置 versionName?
在 Gradle Spring Boot Hibernate 项目中设置 LiquiBase
在 gradle 中设置 applicationId 以获得组合的产品风味
如何使用gradle在APK文件名中设置versionName?