Я пытаюсь подражать плагину релиза Maven в Android с помощью настраиваемой версии gradle -release плагин: https://github.com/townsfolk/gradle-release
Интересными шагами являются:
- Проверить незафиксированные изменения
- Код шага версии и удалить -SNAPSHOT суффикс от имени версии
- Построить
- Название версии шага и добавьте -SNAPSHOT суффикс для следующей версии разработки
Однако сгенерированный APK всегда имеет предыдущие версии (то есть 1.0.0-SNAPSHOT вместо 1.0.0).
Номера версий сохраняются и корректно обновляются в gradle.properties, поэтому я предполагаю, что мне нужно обновить версии в модели данных, а также чтобы изменения вступили в силу.
Моя конфигурация плагина для Android:
defaultConfig {
versionCode versionCode as int // taken from gradle.properties
versionName versionName // taken from gradle.properties
minSdkVersion 10
targetSdkVersion 19
}
Вещи, которые я пробовал:
preBuild << {
android.applicationVariants.each { variant ->
variant.versionName = versionName
}
}
Но в варианте нет версииName.
preBuild << {
android.buildTypes.each { type ->
type.versionName = versionName
}
}
Но нет типаName в типе.
preBuild << {
android.productFlavors.each { flavor ->
flavor.versionName = versionName
}
}
Но в моем приложении нет вкусов (только простые типы отладки и выпуска).
Моей альтернативой является написать bash/bat script, чтобы поменять версии перед вызовом Gradle, что в значительной степени поражает цель использования Groovy для улучшения настройки сборки.
Как я могу динамически обновлять версии в плагине Android Gradle на этапе выполнения?