2016-06-26 2 views
2

У меня проблема с номерами версий в магазине Play.Ионное обновление версий Android

версия моего приложения, используемая быть отформатирована как

Version code 
10172 (5 digits) 
Version name 
1.1.72 

Я изменил сборку машину и не понял, что версия, которую я загрузил была

Version code 
101748 

Теперь 6T цифры! 8 расширяет номер версии, чтобы быть слишком длинным

Version name 
1.1.74 

101748 теперь блокирует меня от загрузки новой версии в магазин. Например, для версии 1.1.821 в config.xml Я получаю APK кода версии 101748 еще раз!?!?! и загрузка не выполняется с

You need to use a different version code for your APK because you already have one with version code 101748. 

У меня были другие комбинации сборки, где код версии был 5 цифр и загрузка не удалась.

Я не могу удалить текущую загруженную версию из магазина воспроизведения, и я не знаю, как настроить автоматическую систему сборки в ионной форме, чтобы заставить ее использовать определенный код версии? Кажется, код генерируется вне версии во время сборки.

Любые предложения приветствуются.

+0

вы с можете установить следующие два: изменение андроида: VersionCode = "Ваша версия (10182) "или сделать change version =" 1.8.2 "и сделать release .apk снова для загрузки .. – Naitik

ответ

0

Хорошо, мне потребовалось некоторое время, но исправить этот должен разделить

cordova build --release android 

в

cordova prepare android 
./adjustVersionCode.py 
cordova compile android --release 

с adjustVersionCode.py в ун-оптимизированной и очищено питон:

#!/usr/bin/env python 

from lxml import etree 

lines = '' 
with open('config.xml','r') as configFile: 
    for line in configFile.readlines(): 
     lines += line 

configXML = etree.fromstring(lines) 

versionNumber = configXML.attrib['version'] 
versionCode = versionNumber.replace('.','') 

if len(versionCode) < 6: 
    versionCode += '0' 

print versionNumber,versionCode 


lines = '' 
with open('./platforms/android/AndroidManifest.xml','r') as configFile: 
    for line in configFile.readlines(): 
     lines += line 

androidManifestXML = etree.fromstring(lines) 

wrongVersion = androidManifestXML.attrib['{http://schemas.android.com/apk/res/android}versionCode'] 

replaceString = 'android:versionCode="'+str(wrongVersion)+'"' 
replaceWith = 'android:versionCode="'+str(versionCode)+'"' 

lines = '' 
with open('./platforms/android/AndroidManifest.xml','r') as configFile: 
    for line in configFile.readlines(): 
     lines += line.replace(replaceString,replaceWith) 


with open('./platforms/android/AndroidManifest.xml','w') as configFile: 
    for line in lines: 
     configFile.write(line) 
0

См. "building with cordova for android creates wrong version code"

Но так как ваша текущая версия в магазине - 101748, вам нужно будет иметь по крайней мере 101749, чтобы загрузить новую версию. Невозможно отменить это в Google, поэтому вам нужно просто начать с этого номера или загрузить как совершенно новое приложение.

1

В качестве временного решения, редактировать ваш config.xml, добавить "андроид-VersionCode" и указать VersionCode вручную:

widget id="com.xxxxx.yyyyyyyyyyy" android-versionCode="201018" 
version="2.1.1" 
+0

Я сделал это, но он не работал. См. Мой ответ ниже, хотя ... –

+1

Полностью сработал! Благодаря! (с использованием ионных v2.2.2 и cordova v6.5.0) – sga4