我们有一个应用程序,它具有 3 种构建类型(alpha、beta、release)和几种产品风格,这些产品风格取决于应用程序部署所在的国家/地区。
我正在尝试自动化我们的 gradle 任务,但我不知道如何在不同的 buildTypes 之间更改版本代码。这个想法是让版本代码采用“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 不包含此字段。
我收到错误“错误:无法为 com.android.build.gradle.internal.api.ApplicationVariantImpl 类型的对象设置只读属性 'versionCode' 的值。” 对于以下功能:
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,但他们正在改变版本代码。