Android 将新 apk 上传到生产环境失败:使用不同的版本代码

Android upload new apk to production failed: Use different version code

我已经使用 PhoneGap 构建了一个应用程序,并且我使用 PhoneGap Build 构建了实际的 apk。最初我上传了一个apk,意识到有一个错误。然后我取消发布它,现在我必须重新上传一个新的 apk。但是,当我这样做时,出现以下错误:

我最初的想法是我必须更改 config.xml 文件中的某些内容:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<widget id="com.example.myapp" 
        version="1.0.0" 
        xmlns="http://www.w3.org/ns/widgets" 
        xmlns:gap="http://phonegap.com/ns/1.0"
        versionCode="1.0">
.....

虽然我已经尝试更改两个引用 'code 1' 的实例,但没有任何效果。我做错了什么?

在你的config.xml

改变这个

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<widget id="com.prosperitygroup.EmedEmergency" 
        version="1.0.0" 
        xmlns="http://www.w3.org/ns/widgets" 
        xmlns:gap="http://phonegap.com/ns/1.0"
        versionCode="1.0">

对此:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<widget id="com.prosperitygroup.EmedEmergency" 
        version="1.0.1" 
        xmlns="http://www.w3.org/ns/widgets" 
        xmlns:gap="http://phonegap.com/ns/1.0"
        versionCode="2">

我在这里假设您的 config.xml 是 Cordova 内部 AndroidManifest.xml 的包装器(或增加版本号的新 build.gradle 方式)。

如果您有 AndroidManifest,那么您需要这样的东西:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.prosperitygroup.EmedEmergency"
    android:versionCode="2"
    android:versionName="1.1" >

上传新版本时必须增加应用的版本号,可以增加1、2或任何其他数字。

您应该为签入源代码管理的每个错误修复增加版本号。这样您就可以更轻松地跟踪错误。

例如,如果您签入内部版本号为 1.8 的错误修复,而有人报告了 1.7 中的错误,那么您可以告诉此人只需更新即可修复错误。

我尝试在修复每个错误时增加我的版本代码,当我关闭错误报告时,我会记下新的构建代码,以便我知道忽略旧版本用户的错误报告是否存在错误

versionCode和version有什么区别?

Version Code

— 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.

android:versionName

— A string value that represents the release version of the application code, as it should be shown to users. The value is a string so that you can describe the application version as a .. string, or as any other type of absolute or relative version identifier.

您可以在 android docs 中阅读更多关于它们的信息:

在清单的开头,有一个 versionCode 和 versionName 属性:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.basiccontactables"
    android:versionCode="1"
    android:versionName="1.0" >

每次要发布另一个版本的 apk 时,都需要更新这两个变量。