7

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

谢谢

4

5 回答 5

20

至于最佳实践,您可以使用一种非常好的方法来管理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}"
    ...
  }
  ...
}
于 2016-09-23T18:04:03.037 回答
6

在你的清单中,你应该有这个:

 android:versionCode="1"
 android:versionName="1.0" 
于 2012-12-18T18:43:16.037 回答
6

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

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

(构建限制为 99,如果不在 CI/CD 环境中使用也可以)

当显然第二个“更大”时,值 3.0.10.0 和 3.1.0.0 将产生相同的版本代码。这里最大的问题是,如果上传 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 答案的示例一样。

于 2020-05-21T13:54:04.460 回答
1

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

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

}
于 2016-11-30T13:31:00.423 回答
0

versionCode 是您的 apk 后续版本号,其中 release 是要在 Google Play 中发布的内容

于 2014-10-24T10:02:07.987 回答