Android - изменить название версии аромата на основе типа сборки
Я хочу изменить имя версии для приложений, но только если это отладочная сборка.
(например, отладочные сборки будут иметь версии, такие как 1.0.1 D (DEBUG) 555 или 1.0.1 P (DEBUG) 555, однако я хочу, чтобы версии релизов имели только версию 1.0.1)
Как я могу достичь этого?
В основном у меня есть эти типы сборки:
buildTypes {
debug {
versionNameSuffix " (DEBUG) " + mBuild
}
release {
runProguard true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), file('proguard-project.txt')
signingConfig signingConfigs.release
}
}
и эти ароматы (для разных условий api):
productFlavors {
dev {
versionName = android.defaultConfig.versionName + " D"
}
prod {
versionName = android.defaultConfig.versionName + " P"
}
}
Есть ли способ сделать выпускные сборки без изменения названия версии продукта?
Я попытался установить динамическое имя версии с помощью
buildTypes.each { buildType ->
if(buildType.name == 'debug') {
productFlavors.dev.versionName = android.defaultConfig.versionName + " D"
}
}
но это приводит к
Не удалось найти свойство 'dev' в контейнере GroupableProductFlavorDsl.
Ответы
Ответ 1
После нескольких часов поиска мне удалось удалить все изменения, внесенные в имя версии для сборки релиза, используя этот код
applicationVariants.all { variant ->
if (variant.buildType.name == 'release') {
variant.mergedFlavor.versionName = android.defaultConfig.versionName;
}
}
Ответ 2
Build Type
должен переопределить Product Flavor
. Попробуйте следующий.
buildTypes {
release {
versionName = android.defaultConfig.versionName
}
}