2015-06-15 14 views
6

uruchamiając komendę cordova build --release android produkuje apk że ma kod wersji 70. W pliku config.xml, dla widgetu mam ustawić go jakobudynek z Cordova dla Androida tworzy zła wersja kodu

<widget id="com.example.myapp" 
     android-versionCode="7" 
     version="0.9.1" 
     > 

Jak dostanę cordova-cli do zbudowania apk z kodem wersji 7?

Running aapt.exe l -a na wygenerowanym apk pokazuje A: android:versionCode(0x0101021b)=(type 0x10)0x46 0x46 jest 70, gdybym jarsigner APK i zipalign i przesyłać, google mówi mi również kod wersji jest 70.

Odpowiedz

7

znalazłem odpowiedzi na mój problem, że w pod platforms/android/build.gradle, w linii 178,

versionCode cdvVersionCode ?: Integer.parseInt("" + privateHelpers.extractIntFromManifest("versionCode") + "0") 

w końcu jest to, że w ten sposób obracając + "0" mój kod wersji od 7 do 70. Wyjmowanie + "0" na końcu i zmieniając linię 178 do następnego rozwiązać ten problem.

versionCode cdvVersionCode ?: Integer.parseInt("" + privateHelpers.extractIntFromManifest("versionCode")) 

Running aapt.exe l -a na generowany apk pokazuje teraz A: android:versionCode(0x0101021b)=(type 0x10)0x7

+0

sed -i "" -e "s/+ \" 0 \ "//" platformy/android/build.gradle – Aram

+3

Dlaczego oh, dlaczego dodają 0 na końcu? To nie ma najmniejszego sensu! –

+1

Po aktualizacji, jest on teraz w linii 175 dla mnie. Również odpowiedź Chi-An może być istotna, jeśli dostaniesz dodatkowe 2 lub 4 tam, i jeśli otrzymujesz dodatkowe 9 lub 8 dodane do niego (tj. Tworzenie wersji 10 daje wynik 18 lub bez poprawki powyżej) 10 tworzy wersję 108), które znajdują się w liniach ~ 210 i ~ 212, po prostu komentując, że te linie działają poprawnie, tj. // defaultConfig.versionCode + = 8'. – gattsbr

5

miałem ten sam problem, używam Cordova 4.3.0. Mój kod wersji w pliku AndroidManifest.xml miał wartość "1", a wersja w pliku .apk miała postać "12". Jeśli spojrzysz na fragment kodu po linii, którą polecisz, budowanie wielu wersji doda "2" dla arm7 i "4" dla x86. W pewnym sensie widzę, dlaczego tak się stało, ale wydaje mi się, że lepiej pozwolić programistom określić kod wersji, który chcą.

Powiązane problemy