【问题标题】:Overwrite Application Id Outside of Flavors and Build Types覆盖风味和构建类型之外的应用程序 ID
【发布时间】:2018-04-25 10:28:24
【问题描述】:

我有一个应用程序有多种风格 (A,B,C) 和两种构建类型 (debug,release)

在构建类型debug 中,我为应用程序 ID 添加了一个后缀,如下所示:

debug {
    applicationIdSuffix '.debug'
}

这适用于风味 AB,但我不能将 .debug 附加到风味 C 的应用程序 ID。

我已经研究过像 versionCode 一样覆盖变体,但没有运气。

    applicationVariants.all { variant ->
        def changedVersionCode = variant.versionCode
        variant.
        variant.outputs.each { output ->
            if (variant.buildType.name != "debug") {
                output.setVersionCodeOverride(project.ext.versionCode)
                changedVersionCode = project.ext.versionCode
            } 
        }
        changeApkFileName(variant,changedVersionCode)
    }

是否可以根据风格覆盖变体应用程序 ID。例如,我的计划是这样做:

variant.buildType.name.replace('.debug','')

【问题讨论】:

  • “但没有运气”是什么意思?你的症状是什么?
  • “你不能追加”或者“你不想追加”???为 C 风味。

标签: android gradle


【解决方案1】:

是否可以根据风味覆盖变体应用程序 ID

是的,这是可能的。

您看不到预期 id 的原因是:

由于 Gradle 在产品风味之后应用构建类型配置,因此“C”构建变体的应用程序 ID 将为“<your-applicaion-id>.debug”。

因此,如果您希望它针对不同的口味有所不同,那么您必须将 applicationIdSuffix 隔离为不同的口味,并将其从 debug {} 中删除,如下所示:

android {
    defaultConfig {
        applicationId "<your-application-id>"
    }
    productFlavors {
        A {
            applicationIdSuffix ".debug"
        }
        B {
            applicationIdSuffix ".debug"
        }
        C {
            applicationIdSuffix ""
        }
    }
}

更多详情请参考官方documentation

【讨论】:

    猜你喜欢
    • 2015-06-19
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    • 2018-05-08
    • 2015-06-11
    • 2015-07-09
    • 2019-12-05
    • 1970-01-01
    相关资源
    最近更新 更多