Android gradle - 针对不同buildType的不同versionCode

时间:2016-11-06 19:49:49

标签: android gradle android-productflavors android-build-type

我们的应用程序有3种构建类型(alpha,beta,release)和几种依赖于部署应用程序的国家/地区的产品风格。

我正在尝试自动化我们的gradle任务,但我无法弄清楚如何在不同的buildType中更改版本代码。我们的想法是使用#34; major.minor.patch形式的版本代码。"。

我当前的gradle默认配置如下所示:

final VERSION_MAJOR = 0
final VERSION_MINOR = 7
final VERSION_PATCH = 1

android {
    defaultConfig {
        applicationId "com.app"
        multiDexEnabled true
        versionName "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}"
        versionCode VERSION_MAJOR * 10000000 + VERSION_MINOR * 100000 + VERSION_PATCH * 1000
    }

我尝试更改特定buildType中的versionCode,但这是不可能的,因为buildTypes不包含此字段。

我收到错误"错误:无法设置只读属性的值' versionCode'对于com.android.build.gradle.internal.api.ApplicationVariantImpl类型的对象。"对于以下功能:

applicationVariants.all { variant ->
    if(variant.buildType.name.equals("release"))
        variant.versionCode += 0
    if(variant.buildType.name.equals("beta"))
        variant.versionCode += 1
    if(variant.buildType.name.equals("debug"))
        variant.versionCode += 2
    }
}

我不确定如何解决这个问题。我显然不能使用不同的口味,因为我们已经使用口味来指定国家。 PS:我知道Use different VersionCode for Debug/Release android gradle build,但他们正在更改版本代码。

0 个答案:

没有答案