Mon application est développée/publiée avec Cordova et Crosswalk. Crosswalk génère un apk pour ARM cpus et un autre pour x86.
Pour le moment, lorsque je télécharge mon apk ARM sur le Play Store, puis que j'essaye de téléverser celui de x86, je ne le fais pas et affiche un message indiquant que je ne peux pas avoir deux apk avec le même code de version.
Cependant, il semble nécessiter l'utilisation d'un fichier "Application.mk" que la structure de projet Cordova ne semble pas avoir par défaut.
Comment puis-je inclure un fichier Application.mk dans mes apks afin que le ARM et le x86 avec le même code de version puissent être téléchargés sur le Play Store?
C'est absolument possible. Cette fonctionnalité reçoit le nom de: APK multiple
Vous n'avez pas besoin d'utiliser le 'Application.mk'
Le processus est simple :
Il y a des règles pour utiliser plusieurs APK, mais si vous utilisez les fichiers générés par Cordova Crosswalk, vous n'avez rien à craindre.
Le problème que vous avez décrit avec code de version} se produit beacuse chaque application doit avoir un code de version différent . Dans mon cas, j'utilise un framework ionique (extend cordova) et dans le processus de construction, il génère un code de version différent pour chaque apk, je n'ai donc eu aucun problème. Si cela ne vous arrive pas, vous pouvez essayer de modifier de Android: versionCode directement sur le fichier AndroidManifest.xml. Voici à quoi ressemble mon manifeste:
<manifest
Android:hardwareAccelerated="true"
Android:versionCode="102"
Android:versionName="0.1.2"
package="br.org.yyyyyyy.xxxxxxxxxx"
xmlns:Android="http://schemas.Android.com/apk/res/Android">
Dans mon cas, le bras7 apk, le
Android: versionCode = "102"
Et en x86 apk le
Android: versionCode = "104"
Références:
Je fais de façon simple. Exemple, votre code v principal est 102. Vous créez donc le premier bras avec un code 102 v et vous téléchargez. Jusqu'à ce que le téléchargement s'exécute, vous pouvez modifier le code v dans manifeste et dans la version de build jusqu'à 103 et en créer un autre x86. Facile et simple.
Je pense que les choses ont changé au cours de la dernière année. J'ai utilisé le même code de version et téléchargé les deux apks (un à la fois - de manière normale). Google Play a automatiquement détecté qu'ils étaient ciblés sur différentes plates-formes natives et a autorisé leur entrée en production.
Le document cordova-crosswalk doc indique comment créer un apk qui fonctionne à la fois pour bras et x86. Le problème est que cela fait un énorme apk.
Si vous voulez vraiment faire deux apks, vous pouvez essayer (désolé pas encore testé) de créer le fichier Application.mk dans le dossier plateformes/Android/jni
Pour arm, vous mettriez cette ligne dans Application.mk:
APP_ABI := armeabi armeabi-v7a
Et pour Intel x86:
APP_ABI := x86
Et vous devez changer AndroidManifest.xml pour avoir une version différente pour chaque plate-forme (en suivant les instructions du lien que vous avez fourni).
Attention, si vous exécutez Cordova build Android à nouveau, il remplacera probablement tout le contenu des plateformes/Android et vos modifications seront perdues.
Pour construire le projet utiliser
platforms\Android\cordova\build.bat -release
au lieu de
cordova build Android --release