我的应用在android市场上的版本代码为2,版本名称为1.1
但是,今天更新的时候,我在manifest里把版本码改成了3,但是错误的把我的版本名改成了1.0.1,并把apk上传到了市场。
现在,我的应用程序的用户会在他们的手机上收到更新通知吗?还是我要重做一遍?
我的应用在android市场上的版本代码为2,版本名称为1.1
但是,今天更新的时候,我在manifest里把版本码改成了3,但是错误的把我的版本名改成了1.0.1,并把apk上传到了市场。
现在,我的应用程序的用户会在他们的手机上收到更新通知吗?还是我要重做一遍?
当前回答
The answer from Tanoh could use some clarification. VersionCode is the equivalent of a build number. So typically an app will go through many iterations before release. Some of these iterations may make it to the Google Play store in the form of alpha, beta, and actual releases. Each successive iteration must have an incremented versionCode. However, typically you only increase the versionName when between public releases. Both numbers are significant. Your users need to know if the version they have on their phone is the latest or not (versionName) and the Play Store and CI systems such as bitrise rely on and/or update the build number (versionCode)
其他回答
它确实基于versionCode而不是versionName。然而,我注意到,改变AndroidManifest.xml中的versionCode对于Android Studio - Gradle构建系统是不够的。我需要在build.gradle中更改它。
android:versionCode -一个整数值,代表应用程序代码的版本,相对于其他版本。
该值为整数,以便其他应用程序可以以编程方式计算它,例如检查升级或降级关系。您可以将该值设置为您想要的任何整数,但是您应该确保应用程序的每个后续版本都使用更大的值。系统不会强制执行这种行为,但是随着连续的发布而增加值是规范的。
android:versionName -一个字符串值,代表应用程序代码的发布版本,因为它应该显示给用户。
该值是一个字符串,以便您可以将应用程序版本描述为..字符串,或作为任何其他类型的绝对或相对版本标识符。
与android:versionCode一样,系统不会将此值用于任何内部目的,除了允许应用程序将其显示给用户。发布服务也可以提取android:versionName值以显示给用户。
通常,在发布应用程序的第一个版本时,将versionCode设置为1,然后在每次发布时单调地增加该值,而不管该发布是主要发行版还是次要发行版。这意味着android:versionCode值不一定与用户可见的应用程序发布版本有很强的相似性(参见下面的android: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 ="";
}
我猜用户仍然会收到更新通知,因为你增加了你的版本代码。但是您的版本名将显示为1.0.1给用户。
The answer from Tanoh could use some clarification. VersionCode is the equivalent of a build number. So typically an app will go through many iterations before release. Some of these iterations may make it to the Google Play store in the form of alpha, beta, and actual releases. Each successive iteration must have an incremented versionCode. However, typically you only increase the versionName when between public releases. Both numbers are significant. Your users need to know if the version they have on their phone is the latest or not (versionName) and the Play Store and CI systems such as bitrise rely on and/or update the build number (versionCode)