我的应用在android市场上的版本代码为2,版本名称为1.1
但是,今天更新的时候,我在manifest里把版本码改成了3,但是错误的把我的版本名改成了1.0.1,并把apk上传到了市场。
现在,我的应用程序的用户会在他们的手机上收到更新通知吗?还是我要重做一遍?
我的应用在android市场上的版本代码为2,版本名称为1.1
但是,今天更新的时候,我在manifest里把版本码改成了3,但是错误的把我的版本名改成了1.0.1,并把apk上传到了市场。
现在,我的应用程序的用户会在他们的手机上收到更新通知吗?还是我要重做一遍?
当前回答
参考链接
android: versionCode
内部版本号。此数字仅用于确定一个版本是否比另一个版本更新,数值越大表示更新版本。这不是显示给用户的版本号;该数字由versionName属性设置。 取值必须为整数,例如“100”。您可以任意定义它,只要每个后续版本都有一个更高的数字。[…]
android: versionName
显示给用户的版本名。此属性可以设置为原始字符串或字符串资源的引用。字符串除了显示给用户外没有其他用途。versionCode属性保存内部使用的重要版本号。
读到这里,很明显versionName只是显示给用户的东西,versionCode才是重要的。只要不断增加,一切都会好起来的。
其他回答
不需要反转你的步骤。当您增加VersionCode时,这意味着您的应用程序已经升级了。VersionName只是一个字符串,为了便于用户阅读而呈现给用户。谷歌play不会根据VersionName采取任何行动。
在我的情况下,我向最终用户显示我的应用程序的版本,我在Manifest文件和build.grade中添加版本名称和版本代码
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.mydomain.myproject"
android:versionCode="9106"
android:versionName="9.1.06">
...
</manifest
之后,我将这个变量用于我的活动或片段
try
{
versionName = getActivity().getPackageManager().getPackageInfo(getActivity().getPackageName(), 0).versionName;
}
catch (PackageManager.NameNotFoundException e) {
versionName ="";
}
catch (ActivityNotFoundException e)
{
//e.printStackTrace();
versionName ="";
}
给定一个版本号MAJOR.MINOR。PATCH,增加:
当你进行不兼容的API更改时,MAJOR版本 以向后兼容的方式添加功能时为MINOR版本 当您进行向后兼容的错误修复时,PATCH版本。
版本代码和版本名称
如你所知,在android上,你必须为应用程序定义两个版本字段:版本代码(android:versionCode)和版本名称(android:versionName)。版本代码是一个增量整数值,表示应用程序代码的版本。版本名是一个字符串值,表示显示给用户的“友好”版本名。
版本代码被谷歌播放商店用于新的更新。版本名显示给用户。 如果您增加了版本代码,则更新将对所有用户可见。
要了解更详细的信息,请花2分钟阅读这篇文章https://developer.android.com/studio/publish/versioning.html
我猜用户仍然会收到更新通知,因为你增加了你的版本代码。但是您的版本名将显示为1.0.1给用户。