Android清单中的versionCode与versionName


223

我在android市场上有我的应用程序,版本代码= 2,版本名称= 1.1

但是,在今天进行更新时,我在清单中更改了版本代码= 3,但是错误地将我的版本名称更改为1.0.1并将apk上传到了市场。

现在,我的应用程序的用户是否会在手机上收到更新通知?还是应该重做一次?


1
尝试使用此链接将对您有所帮助。“” developer.android.com/tools/publishing / ...
MPG 2015年

随着您增加版本代码,它们应该会出现。从理论上讲,它是用作更新标记的一种。
2015年

@ user838522您能否将投票率最高的答案标记为所选答案?
xarlymg89

@CarlosAlbertoMartínezGadea:user838522最近一次出现是在2013年
serv-inc

Answers:


610

参考链接

android:versionCode

内部版本号。该数字仅用于确定一个版本是否比另一个版本新,而更高的数字则表示最新版本。这不是显示给用户的版本号;该数字由versionName属性设置。该值必须设置为整数,例如“ 100”。您可以根据需要定义它,只要每个后续版本的编号都更高。[...]

android:versionName

向用户显示的版本名称。可以将此属性设置为原始字符串或对字符串资源的引用。该字符串除了显示给用户外没有其他用途。versionCode属性保存内部使用的有效版本号。

可以很清楚地看到versionName只是向用户显示的内容,versionCode才是最重要的。只是不断增加它,一切都应该很好。


1
这意味着两者之间没有数学关系。是吗?
Vinil Chandran

这说明了似乎是相同版本的静默更新。
E. Sundin

11
仅添加一个注释:Google Play允许versionCode的最大价值是2100000000
Atul

1
在Play商店中,必须将更新的vesrion和应用程序的先前版本之间的版本代码差保持为1吗?
Sivaram Boina

@sivaram没有。
未知

30

不需要颠倒您的步骤。随着您增加VersionCode,这意味着您的应用程序已经升级。VersionName只是一个字符串,呈现给用户以提高用户的可读性。Google Play不会根据VersionName采取任何措施。



6

我将为您解释我可以找到的唯一文档。

“例如检查升级或降级关系。” <-您可以降级应用程序。

“您应确保应用程序的每个后续发行版使用更大的值。系统不会强制执行此行为。” <-该数目确实应该增加,但是您仍然可以降级应用程序的等级。

android:versionCode —一个整数值,代表相对于其他版本的应用程序代码的版本。该值是一个整数,以便其他应用程序可以编程方式对其进行求值,例如,检查升级或降级关系。您可以将值设置为所需的任何整数,但是应确保应用程序的每个后续发行版均使用更大的值。系统不强制执行此行为,但是在后续发行中增加价值是正常的。通常,您将发布版本代码设置为1的应用程序的第一个版本,然后随每个版本单调增加该值,而不管该版本是主要版本还是次要版本。这意味着android:versionCode值不一定与用户可见的应用程序发行版非常相似(请参见下面的android:versionName)。应用程序和发布服务不应向用户显示此版本值。


2
那我可以就这样吗?因为我认为android系统会根据版本代码(而非版本号)检查应用程序更新。如我错了请纠正我。
user838522 2012年

5

android:versionCode —一个整数值,代表相对于其他版本的应用程序代码的版本。

该值是一个整数,以便其他应用程序可以编程方式对其进行求值,例如检查升级或降级关系。您可以将值设置为所需的任何整数,但是应确保应用程序的每个后续发行版均使用更大的值。系统不强制执行此行为,但是在后续发行中增加价值是正常的。

android:versionName —一个字符串值,代表应显示给用户的应用程序代码的发行版本。

该值是一个字符串,以便您可以将应用程序版本描述为..字符串或任何其他类型的绝对或相对版本标识符。

与android:versionCode一样,系统不会将此值用于任何内部目的,只是使应用程序能够将其显示给用户。发布服务还可以提取android:versionName值以显示给用户。

通常,您将释放版本代码设置为1的应用程序的第一个版本,然后随每个版本单调增加该值,而不管该版本是主要版本还是次要版本。这意味着android:versionCode值不一定与用户可见的应用程序发行版非常相似(请参见下面的android:versionName)。应用程序和发布服务不应向用户显示此版本值。


5

它确实基于versionCode而不是基于versionName。但是,我注意到,使用Android Studio-Gradle构建系统更改AndroidManifest.xml中的versionCode是不够的。我需要在build.gradle中进行更改。


5

版本代码 代表您代码的版本,无论此代码是旧代码还是新代码,Android OS都会使用此变量检查更新。

版本名称 以以下格式表示版本名称:

(主要)。(次要)。(点)

字符串(仅用于可读字符串)在功能上已由OS使用版本代码。


4

版本代码 -这是一个正整数,用于与其他版本代码进行比较。它不会显示给用户,只是以某种方式保存记录。您可以将其设置为任何您喜欢的整数,但是建议您为后续版本线性递增。

版本名称 -这是用户看到的版本字符串。它不用于内部比较或其他任何东西,只是供用户查看。

例如:假设您发布了一个应用程序,其初始versionCode可以为1,versionName也可以为1。对应用程序进行一些小的更改并要发布更新后,可以将versionName设置为“ 1.1”(因为更改不是主要的),而从逻辑上讲,您的versionCode应该为2(无论更改大小如何)。

假设您在另一个情况下发布了应用程序的完全修订版,则可以将versionCode和versionName设置为“ 2”。

希望能有所帮助。

您可以在此处了解更多信息


0

给定版本号MAJOR.MINOR.PATCH,增加:


  • 当您进行不兼容的API更改时的主要版本,
  • 以向后兼容的方式添加功能时的MINOR版本,并且
  • 进行向后兼容的错误修复时的PATCH版本。

版本代码和版本名称

如您所知,在android上,您必须为应用定义两个版本字段:版本代码(android:versionCode)和版本名称(android:versionName)。版本代码是一个增量整数值,代表应用程序代码的版本。版本名称是一个字符串值,代表显示给用户的“友好”版本名称。


0

答案塔诺可以使用一些澄清。VersionCode与内部版本号等效。因此,通常情况下,应用在发布之前会经历多次迭代。其中一些迭代可能会以Alpha,Beta和实际发行的形式进入Google Play商店。每个后续迭代必须具有递增的versionCode。但是,通常只有在两次公共发行之间才增加versionName。这两个数字都很重要。您的用户需要知道他们手机上的版本是否为最新版本(versionName),并且Play商店和CI系统(例如比特币)依赖和/或更新内部版本号(versionCode)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.