web-dev-qa-db-fra.com

Comment puis-je publier sur Play Store le x86 et ARM apks de mon application cordova-crosswalk?

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.

Il semble qu'il soit possible de télécharger sur le Play Store plusieurs fichiers apk pour la même version d'une application, en filtrant les périphériques ciblés par chaque fichier apk.

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?

10
Żabojad

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 :

  1. Dans la console développeur, passez en Mode avancé (cliquez sur le bouton Passage en mode avancé en haut à droite de l'onglet APK - notez que vous devez avoir téléchargé au moins un APK pour ce bouton apparaître)
  2. Télécharger les deux APK
  3. Publier!

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:

Android Plusieurs APK DOC

Gestion de plusieurs fichiers APK DOC

22
Henry Ávila

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.

1

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.

1
James L.

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
0
QuickFix