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

Al *_*aba 5 android

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

谢谢

Gre*_*ryK 10

至于最佳实践,您可以使用一种非常好的方法来管理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}"
    ...
  }
  ...
}
Run Code Online (Sandbox Code Playgroud)


Ahm*_*mad 5

在清单中,您应该具有以下内容:

 android:versionCode="1"
 android:versionName="1.0" 
Run Code Online (Sandbox Code Playgroud)


小智 5

参考@GregoryK 的回答,有一件重要的事情需要提及。

每个部分之间的 0 零差异允许次要补丁值的最大值为 9 。

(构建限制为 99,如果不在 CI/CD 环境中使用,这很好)

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

为了解决上面的问题,我们需要跟build和patch(patch可以增加到99)一样跟着两个零(00)空格:

versionMajor * 1000000 + versionMinor * 10000 + versionPatch * 100 + versionBuild
Run Code Online (Sandbox Code Playgroud)

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

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