管理我的Android应用程序版本的最佳做法是什么?

时间:2012-12-18 18:42:22

标签: android

实际上我的应用程序差不多到目前为止,有些人可以测试它。现在我想要一个应用程序的版本号。我应该在哪里放置version.properties还是有内置机制?

由于

5 个答案:

答案 0 :(得分:8)

对于最佳实践,您可以使用一种非常好的方法来管理Jake Wharton https://plus.google.com/+JakeWharton/posts/6f5TcVPRZij中描述的版本代码和名称。

基本上,您可以根据主要版本号,次要版本和补丁版本号更新build.gradle以生成versionCode和versionName。 (为方便起见,从链接复制了代码。)

def versionMajor = 3
def versionMinor = 0
def versionPatch = 0
def versionBuild = 0 // bump for dogfood builds, public betas, etc.

android {
  defaultConfig {
    ...
    versionCode versionMajor * 10000 + versionMinor * 1000 + versionPatch * 100 + versionBuild
    versionName "${versionMajor}.${versionMinor}.${versionPatch}"
    ...
  }
  ...
}

答案 1 :(得分:4)

在你的清单内你应该有这个:

 android:versionCode="1"
 android:versionName="1.0" 

答案 2 :(得分:4)

请参阅@GregoryK答案,有一件重要的事情需要提及。

每个部分之间的零零差允许 minor patch 值的最大值为9。

(内部版本限制为99,如果未在CI / CD环境中使用,就可以了)

当第2个明显是“更大”时,值3.0.10.0和3.1.0.0将产生相同的versionCode。 这里最大的问题是,如果上传了3.0.10.0,则GooglePlay将拒绝接受3.1.0.0,因为版本代码已经存在。

为了解决上述问题,我们需要遵循两个零(00)空间,例如构建和补丁(补丁可以增加到99):

versionMajor * 1000000 + versionMinor * 10000 + versionPatch * 100 + versionBuild

我推荐这篇文章: https://medium.com/@maxirosson/versioning-android-apps-d6ec171cfd82

我最终采用他的build.gradle来满足我们的需求。像我在示例中给出的那样,我在最后添加了一个基于@GregoryK答案的构建代码。

答案 3 :(得分:1)

在您的项目中,Gradle文件versionCode将是一个整数值,versionName可以是您可以识别的任何类型的文本。

defaultConfig {
    applicationId "your id"
    minSdkVersion 16
    targetSdkVersion 25
    versionCode 2
    versionName "1.0.1"
    multiDexEnabled true

}

答案 4 :(得分:0)

versionCode是您的apk后续版本号,其中一个版本将在Google Play中发布