上传失败:您需要为APK使用不同的版本代码,因为您已经拥有版本代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了上传失败:您需要为APK使用不同的版本代码,因为您已经拥有版本代码相关的知识,希望对你有一定的参考价值。
情况:
如果这个问题已经被问过三次,请提前抱歉。但这些解决方案都不适用于我。
我需要将新版本上传到我的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中的版本号。
APP版本:
旧版本:(在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”...
运行获得:
在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而不是1.1.10,因为它在config.xml中有明确说明?
我不知道我还能做什么。
如果你解决这个谜题,我将为你建造一座雕塑!
谢谢!
编辑:
最后我决定卸载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),您需要上传两个。
有关如何操作的更多参考,请查看以下答案:
Cordova在AndroidManifest.xml
上覆盖你的变化是正常的。正确的解决方案是将版本放在config.xml
中。
从cordova docs,如果您没有明确指定versionCode,则根据版本计算版本代码。这将是 :
versionCode = MAJOR * 10000 + MINOR * 100 + PATCH
所以android:versionCode="10110"
是正常的。
您可以使用qazxsw poi在qazxsw poi中明确指定版本代码
如果不更新平台文件夹,也应该尝试清理它。也许你所看到的是你的apk的旧版本。
我忘了:这里是cordova docs的链接:config.xml
对于旧版本代码101078,您可能正在使用像Crosswalk这样的插件。
要解决此问题,只需执行以下步骤即可解决您的.apk文件问题。
第1步:清洁cordova构建
android-versionCode
第2步:再次生成“android-release-unsigned.apk”文件
https://cordova.apache.org/docs/en/6.x/guide/platforms/android/index.html#setting-the-version-code
第3步:要签署未签名的APK,请运行jarsigner工具,该工具也包含在JDK中:
$ cordova clean
第4步:您需要运行zip对齐工具来优化APK
$ ionic cordova build --release android
要么
$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore path-to-your-app/apk/android-release-unsigned.apk alias_name
以上是关于上传失败:您需要为APK使用不同的版本代码,因为您已经拥有版本代码的主要内容,如果未能解决你的问题,请参考以下文章
您需要为您的 APK 或 Android App Bundle 使用不同的版本代码
您需要为您的 APK 使用不同的版本代码,因为您已经有一个版本代码为 2
Playstore 错误 - 您需要为您的 APK 或 Android App Bundle 使用不同的版本代码,因为您已经有一个版本代码为 4