在 Gradle 4.1 中为特定风味-buildType 组合设置 applicationIdSuffix

问题描述 投票:0回答:2

我的应用程序中有不同的构建类型和不同的风味维度。我想仅针对一种特定的构建类型向应用程序 ID 添加特定的风格后缀。

例如对于

stageApi
风味和
beta
构建类型组合,我想添加后缀
.stageapi
.beta
,因此结果应用程序 ID 将为
my.application.stageapi.beta
,但对于
debug
release
我不这样做我想要这样做(我想要
my.application.debug
my.application
没有 api 后缀)。

我以前有过这段代码,它运行得很好:

    productFlavors {

        ... 

        beta {
            applicationIdSuffix ".beta"
        }
    }

    applicationVariants.all { variant ->
        def name = variant.getName()
        if (name.contains("StageApiBeta")) {
            def mergedFlavor = variant.mergedFlavor
            mergedFlavor.setApplicationIdSuffix(".stageapi")
        }
    }

但是升级到 Gradle 插件 4.1 后它停止工作。它不会抛出任何错误,但生成的应用程序 ID 是

my.application.beta
,没有
.stageapi

我尝试了不同的方法,但我现在不知道该怎么做。我似乎 4.2 也会有其他 API 更改,但我想让它也能在 4.1 中工作。

android gradle android-gradle-plugin
2个回答
0
投票

使用

flavorDimensions
并为您的变体设置不同的后缀。

flavorDimensions "dimen1" "dimen2"
productFlavors {
   beta {
     applicationIdSuffix ".beta"
     dimension "dimen1"
   }
   stageapi {
     applicationIdSuffix ".stageapi"
     dimension "dimen2"
   }
}

0
投票

使用 Gradle Plugin 8.5.1,我通过简单地将

versionNameSuffix="<suffix>"
添加到 buildType 子句中,成功地组合了风味和 buildType 相关的版本名称后缀,如下例所示(我使用 Kotlin 作为 Gradle 脚本语言):

    buildTypes {
        getByName("release") {
            ...
        }
        getByName("debug") {
            ...
            versionNameSuffix = "-DEBUG"
        }
    }

    ...

    productFlavors {
        create("staging") {
            ...
            versionNameSuffix = "-STG"
        }

对于

stagingDebug
构建变体,我得到了
-STG-DEBUG
后缀。

© www.soinside.com 2019 - 2024. All rights reserved.