我的应用在android市场上的版本代码为2,版本名称为1.1
但是,今天更新的时候,我在manifest里把版本码改成了3,但是错误的把我的版本名改成了1.0.1,并把apk上传到了市场。
现在,我的应用程序的用户会在他们的手机上收到更新通知吗?还是我要重做一遍?
我的应用在android市场上的版本代码为2,版本名称为1.1
但是,今天更新的时候,我在manifest里把版本码改成了3,但是错误的把我的版本名改成了1.0.1,并把apk上传到了市场。
现在,我的应用程序的用户会在他们的手机上收到更新通知吗?还是我要重做一遍?
当前回答
它确实基于versionCode而不是versionName。然而,我注意到,改变AndroidManifest.xml中的versionCode对于Android Studio - Gradle构建系统是不够的。我需要在build.gradle中更改它。
其他回答
版本代码被谷歌播放商店用于新的更新。版本名显示给用户。 如果您增加了版本代码,则更新将对所有用户可见。
要了解更详细的信息,请花2分钟阅读这篇文章https://developer.android.com/studio/publish/versioning.html
不需要反转你的步骤。当您增加VersionCode时,这意味着您的应用程序已经升级了。VersionName只是一个字符串,为了便于用户阅读而呈现给用户。谷歌play不会根据VersionName采取任何行动。
android:versionCode -一个整数值,代表应用程序代码的版本,相对于其他版本。
该值为整数,以便其他应用程序可以以编程方式计算它,例如检查升级或降级关系。您可以将该值设置为您想要的任何整数,但是您应该确保应用程序的每个后续版本都使用更大的值。系统不会强制执行这种行为,但是随着连续的发布而增加值是规范的。
android:versionName -一个字符串值,代表应用程序代码的发布版本,因为它应该显示给用户。
该值是一个字符串,以便您可以将应用程序版本描述为..字符串,或作为任何其他类型的绝对或相对版本标识符。
与android:versionCode一样,系统不会将此值用于任何内部目的,除了允许应用程序将其显示给用户。发布服务也可以提取android:versionName值以显示给用户。
通常,在发布应用程序的第一个版本时,将versionCode设置为1,然后在每次发布时单调地增加该值,而不管该发布是主要发行版还是次要发行版。这意味着android:versionCode值不一定与用户可见的应用程序发布版本有很强的相似性(参见下面的android:versionName)。应用程序和发布服务不应该向用户显示此版本值。
参考链接
android: versionCode
内部版本号。此数字仅用于确定一个版本是否比另一个版本更新,数值越大表示更新版本。这不是显示给用户的版本号;该数字由versionName属性设置。 取值必须为整数,例如“100”。您可以任意定义它,只要每个后续版本都有一个更高的数字。[…]
android: versionName
显示给用户的版本名。此属性可以设置为原始字符串或字符串资源的引用。字符串除了显示给用户外没有其他用途。versionCode属性保存内部使用的重要版本号。
读到这里,很明显versionName只是显示给用户的东西,versionCode才是重要的。只要不断增加,一切都会好起来的。
给定一个版本号MAJOR.MINOR。PATCH,增加:
当你进行不兼容的API更改时,MAJOR版本 以向后兼容的方式添加功能时为MINOR版本 当您进行向后兼容的错误修复时,PATCH版本。
版本代码和版本名称
如你所知,在android上,你必须为应用程序定义两个版本字段:版本代码(android:versionCode)和版本名称(android:versionName)。版本代码是一个增量整数值,表示应用程序代码的版本。版本名是一个字符串值,表示显示给用户的“友好”版本名。