我试图使用下面的Gradle脚本根据每个Build Variant的条件更改版本代码,但它不起作用。我做错了什么或者是否有其他方法可以实现它。
android {
compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {
applicationId "com.myapp.example"
minSdkVersion 16
targetSdkVersion 28
versionCode 1
versionName "1.0"
}
applicationVariants.all { variant ->
if (variant.name == 'builTypeName') {
variant.outputs.each { output ->
output.versionCodeOverride = 1.1
}
}
}
}
假设我有一个免费的变体名称,另一个是付费的。我希望免费获得versionCode 1.1,并且在检查每个变体时如何根据条件执行此操作的versionCode 1.2?
使用拆分Apk并提供版本代码
splits {
abi {
// Enable ABI split
enable true
// Clear list of ABIs
reset()
// Specify each architecture currently supported by the SDK
include "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
// Specify that we do not want an additional universal SDK
universalApk false
}
}
project.ext.versionCodes = ['armeabi-v7a': 1, 'arm64-v8a': 2, 'x86': 3, 'x86_64': 4]
android.applicationVariants.all { variant ->
variant.outputs.each { output ->
output.versionCodeOverride =
project.ext.versionCodes.get(output.getFilter(
com.android.build.OutputFile.ABI), 0) * 10000000 + android.defaultConfig.versionCode
}
}