我们的应用程序有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,但他们正在更改版本代码。