管理Android应用程序版本的最佳实践是什么?

10
实际上,我的应用程序已经接近完成,一些人可以测试它。现在我想要为应用程序添加一个版本号。我应该把版本信息放在 version.properties 文件中吗?还是有内置的机制可以使用?
谢谢。
5个回答

28

关于最佳实践,你可以使用一个非常好的方法来管理版本代码和名称,这里有描述:https://web.archive.org/web/20161206025623/https://plus.google.com/+JakeWharton/posts/6f5TcVPRZij (如果你只看到一个空白页面,请使用阅读器视图), 作者是Jake Wharton。

基本上,你可以更新你的 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}"
    ...
  }
  ...
}

10

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

每个部分之间的0差异允许在次要修补值中达到最大值9。

(构建被限制在99以内,如果不在CI/CD环境中使用,则没有问题)

数值3.0.10.0和3.1.0.0将产生相同的versionCode,尽管第二个版本明显更大。 最大的问题在于,如果已上传了3.0.10.0,GooglePlay将拒绝接受3.1.0.0,因为版本代码已经存在。

为了解决上述问题,我们需要遵循像构建和修补(修补可以增加到99)一样的两个零空间:

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

我推荐这篇文章:https://medium.com/@maxirosson/versioning-android-apps-d6ec171cfd82 最终我采用了他的build.gradle,并根据我们的需要进行了适当修改。我在末尾添加了一个构建代码,类似于我给出的示例,该示例基于@GregoryK的答案。

6

在您的清单文件中应该有以下内容:

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

谢谢您的建议,我找到了这个链接:http://developer.android.com/tools/publishing/versioning.html,这使得问题更加清晰明了。 - Al Phaba

1
在您的项目中,Gradle文件的versionCode将是一个整数值,而versionName可以是任何您能识别的文本类型。
defaultConfig {
    applicationId "your id"
    minSdkVersion 16
    targetSdkVersion 25
    versionCode 2
    versionName "1.0.1"
    multiDexEnabled true

}

0

versionCode 是你的 APK 的下一个发布版本号,其中发布是指将要在 Google Play 上发布的内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接