0

Ich muss die ionic/cordova-Anwendung für 32bit (armeabi-v7a und x86) und 64bit (arm64-v8a und x86_64) Plattformen erstellen. Ich baue vier separate APKs Befehle ionic build android --release und ionic build android --release --xwalk64bit Alles geht gut, außer dass die version (für Version 0.0.11 gesetzt) ​​ist ein wenig aus - siehe unten wrong versionCodesFalsche APKs versionCode Reihenfolge beim Erstellen mehrerer APKs für 32bit und 64-Bit-Plattformen mit Zebrastreifen

Das Problem ist, dass x86 und x86_64 müssen höher versionCode dann ARM-apk. Dies ist erforderlich, da x86-Geräte ARM-Bibliotheken verarbeiten können, aber kein ARM-Gerät in der Lage ist, x86-Bibliotheken zu verarbeiten. Also müssen wir den Versionscode von x86 APK höher halten als den von ARM apk, und das richtige APK wird zum richtigen Gerät gehen. Hier

ist das, was ich suche (und was ich schließlich zu schaffen verwaltet) - siehe unten correct versionCodes

Das Problem ist, dass die version sowohl build.gradle gesetzt und modifiziert von Überweg mobile-xwalk.gradle, die die falschen Versionen gibt, die meinen oben beschriebenen Build-Ansatz verwenden. Ich versuchte, die version mit android-version param in config.xml und mit cdvVersionCode für build.gradle (siehe http://cordova.apache.org/docs/en/6.x/guide/platforms/android/index.html#configuring-gradle), aber kein Glück zu setzen.

Ich Ende bis das Problem zu beheben, indem Sie mobile-xwalk.gradle manuell ändern, um die richtige VersionCodes für 64-Bit-APKs (wie auf meinem zweiten Screenshot gezeigt). Dies sieht nicht wie die optimale Lösung für mich aus

Frage - Gibt es einen besseren Weg, dieses Problem anzugehen?

Antwort

2

Es scheint ein Fehler in cordova-plugin-crosswalk-webview zu sein. Dieser Code Teil von Plattformen/android/build.gradle (verwendet 32-Bit zu bauen):

productFlavors { 
     armv7 { 
      versionCode defaultConfig.versionCode*10 + 2 
      ndk { 
       abiFilters "armeabi-v7a", "" 
      } 
     } 
     x86 { 
      versionCode defaultConfig.versionCode*10 + 4 
      ndk { 
       abiFilters "x86", "" 
      } 
     } 
     all { 
      ndk { 
       abiFilters "all", "" 
      } 
     } 
    } 

hier ist version * 10 gesehen ... Und dieser Code Teil von Plattformen/android/cordova -plugin-Überweg-Webansicht/YOUR_APP_SUFFIX -xwalk.gradle (verwendet 64-Bit zu bauen):

productFlavors { 
      x86_64 { 
       versionCode defaultConfig.versionCode + 6 
       ndk { 
        abiFilters "x86_64", "" 
       } 
      } 
      arm64 { 
       versionCode defaultConfig.versionCode + 9 
       ndk { 
        abiFilters "arm64-v8a", "" 
       } 
      } 
     } 

und hier ist nur version. Also in der Regel ich zweite Datei * 10 bis version ändern PlayMarket gibt

+0

ich zu lösen tat das gleiche, außer dass meine Plattformen/android/cordova-plugin-Überweg-Webansicht/** YOUR_APP_SUFFIX ** - xwalk.gradle sieht wie unten .... x86_64 { version defaultConfig.versionCode + 90077 ... arm64 { version defaultConfig.versionCode + 90075 .... –

+0

oder mit Ihrem Ansatz verwalten i mit dem unter android, dies zu beheben { wenn (xwalk64bit! = null) { productFlavors { x86_64 { versionCode defaultC onfig.version * 10 + 6 - 1 NDK { abiFilters "x86_64", "" } } arm64 { version defaultConfig.versionCode * 10 + 9-6 NDK { abiFilters "arm64-V8A", "" } } } } } –

Verwandte Themen