0

android apk 的 versionCode 在 defaultConfig 中设置。我想为我的每种构建类型进行更改,但似乎这只能通过口味来完成?是否有另一种方法来覆盖 versionCode,可能类似于 outputFileName 的更新方式?

4

3 回答 3

1

我认为您的案例非常适合产品口味。

你为 prod 设置了一种风格,为 stage 设置了一种风格。在这两个设置版本代码作为您的表达式(例如 300 + android.defaultConfig.versionCode 用于生产,200 + android.defaultConfig.versionCode 用于发布)

有关详细示例,请参阅文档: https ://developer.android.com/studio/build/build-variants

然后,当您想要运行或部署一个版本时,您可以在 Build Variants 中的 4 种组合中进行选择,它们将是:prodReleaseprodDebugstageReleasestageDebug

于 2018-11-06T16:14:08.327 回答
0

您可以为您拥有的每个 buildType 创建不同的 AndroidManifest.xml,然后在清单中设置 versionCode,但我个人认为您应该使用风味。

于 2018-11-06T15:58:26.163 回答
0

在您的项目根 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 = value

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

您可以在所有模块中访问这些版本代码。在应用程序 build.gradle

defaultConfig {
    versionCode baseVersionCode
    versionName baseVersionName
    archivesBaseName = "customzied_apk_name"
}
于 2018-11-06T16:14:54.050 回答