【发布时间】:2016-08-10 15:39:48
【问题描述】:
情况:
如果这个问题已经被问了三遍,请提前道歉。但这些解决方案都不适合我。
我需要将我的 Ionic 应用的新版本上传到 Google Play。上传过程一直运行良好,但这次我收到此错误:
You need to use a different version code for your APK because you already have one with version code 101078.
发布过程:
我没有使用 Android Studio。
要发布应用程序,我只需通过命令行构建和签署应用程序,然后将其上传到 Google Developer Console。
对于新版本,我只是在创建 apk 之前更新 config.xml 中的版本号。
应用版本:
旧版本:(Google Play 发布状态)1.1.7 代码版本:101078
新版本:(尝试上传到 Google Play)1.1.10
尝试解决:
我已尝试手动将代码版本设置为更高的数字。 目前我在 ./config.xml 中有这个设置:
<widget id="com.myapp.myapp" version="1.1.10" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
在 ./platforms/android/AndroidManifest.xml 文件中,我手动将设置更改为:
<manifest android:hardwareAccelerated="true" android:versionCode="101079" android:versionName="1.1.10" package="com.meetinghand.meetinghand" xmlns:android="http://schemas.android.com/apk/res/android">
但是在我运行 cordova build --release android 之后,该值会自动重置为 android:versionCode="10110" ...
运行 AAPT:
在 apk 文件上运行 sdk 工具 aapt 我得到以下信息:
name='com.myapp.myapp' versionCode='101078' versionName='1.1.7' platformBuildVersionName='6.0-2704002' sdkVersion:'16' targetSdkVersion:'22'
问题:
发生了什么事?
versionCode 究竟是如何设置的?我可以硬编码吗?为什么不管我做什么,versionCode 都保持在 101078?
为什么 versionName 是 1.1.7 而不是 config.xml 中明确说明的 1.1.10?
我不知道我还能做什么。
如果你解开这个谜题,我会为你建造一座雕塑!
谢谢!
编辑:
最后我决定卸载 CrossWalk,因为我并不需要它的好处。这样问题就解决了,我可以上传新版本了。
我确实可以硬编码 config.xml 中的代码版本,正如 @e666 所指出的:
<widget android-versionCode="101079" id="com.myapp.myapp" version="1.1.10" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
版本代码没有被 Crosswalk 覆盖,但被正确设置为 101079,这样我就可以将 apk 上传为新版本。
如果您仍想保留 Crosswalk 并上传新版本,您可以通过在 Google Developer Console 中切换到高级模式来实现。 请记住,Crosswalk 将导出两个 apk(armv7 和 x86),您需要同时上传两者。
有关如何操作的更多参考,您可以查看此答案:
【问题讨论】:
标签: android cordova ionic-framework google-play apk