我的应用在android市场上的版本代码为2,版本名称为1.1

但是,今天更新的时候,我在manifest里把版本码改成了3,但是错误的把我的版本名改成了1.0.1,并把apk上传到了市场。

现在,我的应用程序的用户会在他们的手机上收到更新通知吗?还是我要重做一遍?


当前回答

版本的代码 代表你的代码的版本,android操作系统通过使用这个变量来检查是否更新这个代码是旧的还是新的。

版本名称 以-格式表示版本名称

(主要),(小)。(点)

字符串,仅用于可读字符串,功能版本代码已被OS使用。

其他回答

我将给你我对我所能找到的关于这个主题的唯一文件的解释。

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

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

android:versionCode — An integer value that represents the version of the application code, relative to other versions. The value is an integer so that other applications can programmatically evaluate it, for example to check an upgrade or downgrade relationship. You can set the value to any integer you want, however you should make sure that each successive release of your application uses a greater value. The system does not enforce this behavior, but increasing the value with successive releases is normative. Typically, you would release the first version of your application with versionCode set to 1, then monotonically increase the value with each release, regardless whether the release constitutes a major or minor release. This means that the android:versionCode value does not necessarily have a strong resemblance to the application release version that is visible to the user (see android:versionName, below). Applications and publishing services should not display this version value to users.

参考链接

android: versionCode

内部版本号。此数字仅用于确定一个版本是否比另一个版本更新,数值越大表示更新版本。这不是显示给用户的版本号;该数字由versionName属性设置。 取值必须为整数,例如“100”。您可以任意定义它,只要每个后续版本都有一个更高的数字。[…]

android: versionName

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

读到这里,很明显versionName只是显示给用户的东西,versionCode才是重要的。只要不断增加,一切都会好起来的。

版本代码被谷歌播放商店用于新的更新。版本名显示给用户。 如果您增加了版本代码,则更新将对所有用户可见。

要了解更详细的信息,请花2分钟阅读这篇文章https://developer.android.com/studio/publish/versioning.html

在我的情况下,我向最终用户显示我的应用程序的版本,我在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 ="";
    }

我猜用户仍然会收到更新通知,因为你增加了你的版本代码。但是您的版本名将显示为1.0.1给用户。