как манипулировать apk вариант versioncode - PullRequest
0 голосов
/ 06 ноября 2018

Код версии для Android-apk устанавливается в defaultConfig. Я хотел бы изменить для каждого из моих типов сборки, но кажется, что это может быть сделано только по вкусу? Есть ли другой способ переопределить versionCode, возможно, похожий на способ обновления outputFileName?

Ответы [ 3 ]

0 голосов
/ 06 ноября 2018

Я думаю, что ваш случай идеально сочетается с ароматами продукта.

Вы задаете вкус к продукту и вкус к сцене. В обоих случаях установите код версии в качестве выражения (например, 300 + android.defaultConfig.versionCode для prod и 200 + android.defaultConfig.versionCode для выпуска)

См. Документ для подробных примеров: https://developer.android.com/studio/build/build-variants

Затем, когда вы хотите запустить или развернуть версию, вы выбираете одну из четырех комбинаций в вариантах сборки: prodRelease , prodDebug , stageRelease и stageDebug

0 голосов
/ 06 ноября 2018

В вашем проекте root build.gradle вы можете определить код версии и версию Назовите что-нибудь вроде этого

  def code = project.hasProperty('versionCode') ? versionCode.toInteger() : 
        (System.getenv("VERSION_CODE") as Integer ?: <default-version-code>)

  def name = project.hasProperty('versionName') ? versionName.toString() : 
  (System.getenv("VERSION_NAME") as String ?: "<default-version-name>")

Вы можете указать код версии и имя среды выполнения в команде сборки примерно так: -P = значение

 allprojects {
    ext.baseVersionCode = code
    ext.baseVersionName = name    
}

Эти версии кода вы можете получить доступ ко всем модулям. В приложении build.gradle

defaultConfig {
    versionCode baseVersionCode
    versionName baseVersionName
    archivesBaseName = "customzied_apk_name"
}
0 голосов
/ 06 ноября 2018

Вы можете создать разные AndroidManifest.xml для каждого имеющегося у вас buildType, а затем установить versionCode в манифесте, но, по моему личному мнению, вам следует использовать разные варианты.

...