Installer l'ensemble d'applications Android sur l'appareil


113

J'ai construit mon projet en utilisant le nouveau format Android App Bundle. Avec les fichiers APK, je peux télécharger l'APK sur mon appareil, l'ouvrir et installer immédiatement l'application. J'ai téléchargé mon application sous forme de bundle (format .aab) et mon Nexus 5X sous Android 8.1 ne peut pas ouvrir le fichier. Existe-t-il un moyen d'installer les AAB sur les appareils de la même manière pratique que les APK?


2
On dirait que cela prend quelques étapes de plus qu'un simple apk: developer.android.com/guide/app-bundle/test .
Mike M.

Réponses:


108

Réponse courte:

Pas directement.

Réponse plus longue:

Les bundles d'applications Android sont un format de publication. Les appareils Android nécessitent des .apkfichiers pour installer les applications.

Le PlayStore ou toute autre source à partir de laquelle vous installez doit extraire les apks du bundle, signer chacun d'eux, puis les installer en fonction de l'appareil cible.

La conversion de .aab en .apk se fait via bundletool .

Vous pouvez utiliser le partage d'application interne pour télécharger une version déboguable de votre application sur le Play Store et la partager avec les testeurs.


Dans quel cas utiliserions-nous l'option Build bundle (s), pas le bundle signé étant donné que nous ne pouvons pas publier d'applications de débogage sur le Play-Store
Oush

Je le ferais principalement pour des tests locaux.
keyboardsurfer

3
La version (au lieu des fichiers source) de bundletool est ici: github.com/google/bundletool/releases
Kari

Actuellement, c'est une mauvaise réponse, voir les autres réponses pour créer un apksfichier.
CoolMind

1
@ericn La "publication" initiale d'une application suit le processus habituel. Tout partage d'application interne que vous effectuez par la suite ne doit pas être bloqué par les avis.
keyboardsurfer

52

En installant l'aab directement à partir de l'appareil, je n'ai pas trouvé de moyen pour cela.

Mais il existe un moyen de l'installer via votre ligne de commande en utilisant la documentation suivante Vous pouvez installer apk sur un appareil via BundleTool

Selon le commentaire de "@Albert Vila Calvo", il a noté que pour installer bundletools en utilisant HomeBrew, utilisez brew install bundletool

Vous pouvez maintenant installer des apks d'extrait à partir du fichier aab et l'installer sur un appareil

Extraction de fichiers apk via la commande suivante

java -jar bundletool-all-0.3.3.jar build-apks --bundle = bundle.aab --output = app.apks --ks = my-release-key.keystore --ks-key-alias = alias - -ks-pass = pass: mot de passe

Arguments:

  • --bundle -> Fichier .aab Android Bundle
  • --output -> Destination et nom de fichier pour le fichier apk généré
  • --ks -> Fichier Keystore utilisé pour générer le Bundle Android
  • --ks-key-alias -> Alias ​​pour le fichier de keystore
  • --ks-pass -> Mot de passe du fichier d'alias (veuillez noter le préfixe 'pass' avant la valeur du mot de passe)

Ensuite, vous aurez un fichier avec l'extension .apks.Vous devez maintenant l'installer sur un appareil

java -jar bundletool-all-0.6.0.jar install-apks --adb = / android-sdk / platform-tools / adb --apks = app.apks

Arguments:

  • --adb -> Chemin du fichier adb
  • --apks -> Le fichier Apks doit être installé

25
Si vous utilisez Mac vous pouvez installer Bundletool avec Homebrew: brew install bundletool. Ensuite, exécutez simplement les commandes comme celle-ci:bundletool build-apks --bundle=./app/release/app.aab --output=./app/release/app.apks
Albert Vila Calvo

3
--ks-pass = pass: mot de passe spécifie le mot de passe du fichier de clés. Pour spécifier le mot de passe du fichier de clés, utilisez --key-pass = pass: password
smitty1

Je suis confronté au même problème, j'ai suivi les étapes que vous avez décrites, cependant, lorsque l'application est installée sur mon appareil Android, je ne peux pas l'ouvrir (elle ouvre automatiquement la fermeture)
aName

Merci! --key-pass=pass:... est obligatoire, mais étrangement un mot de passe est incorrect, je dois donc le saisir manuellement. Après ... install-apks --adb=...avoir écrit: «Les APK ont été extraits dans le répertoire: ...», mais ce dossier n'existe pas et il ne s'installe pas sur l'appareil.
CoolMind

EXEMPLE: C:\Users\Aterr\Desktop\hack>java -jar "C:\Users\Aterr\Desktop\hack\bundletool-all-0.10.3.jar" install-apks --adb="C:\Users\Aterr\AppData\Local\Android\Sdk\platform-tools\adb.exe" --apks="C:\Users\Aterr\Desktop\hack\extractedapks.apks"
Choletski

24

Vous ne pouvez pas installer paquet app [NAME].aabdirectement à l' appareil Android , car il est le format d' édition, mais il y a moyen d'extraire le nécessaire à apkpartir bundleet l' installer à l' appareil vous, le processus est le suivant

  1. Téléchargez bundletool ici
  2. lancez ceci dans votre terminal,
java -jar bundletool.jar build-apks --bundle=bundleapp.aab --output=out_bundle_archive_set.apks
  1. La dernière étape générera un fichier nommé comme out_bundle_archive_set.apks, renommez-le simplement out_bundle_archive_set.zipet extrayez le fichier zip, sautez dans le dossier out_bundle_archive_set > standalones, où vous verrez une liste de tous les apks

Il y a la référence des développeurs Android pour le lien des outils de bundle

référence développeur android


Il nécessite une clé de signature et des mots de passe, voir stackoverflow.com/a/52704544/2914140 et developer.android.com/studio/command-line/bundletool .
CoolMind

@CoolMind, la clé de signature et les mots de passe sont lorsque vous souhaitez créer l'ensemble des apk signés hors du bundle et que vous souhaitez déployer apk sur l'appareil, vérifiez la réponse mise à jour
Ali Tamoor

La troisième étape est vraiment nécessaire, merci beaucoup.
Dhiren

il n'y a pas de dossier nommé autonome, à la place il y a des divisions
nommées

16

Pour Mac:

brew install bundletool
bundletool build-apks --bundle=./app.aab --output=./app.apks
bundletool install-apks --apks=app.apks

Je viens de faire le travail sans aucun problème. Sauvé la journée!
asozcan

après que le troisième terminal de commande a montré un chemin pour l'application, mais le dossier n'est pas disponible
Furquan

1
@Furquan, ce chemin affiché est le chemin de votre appareil connecté. La commande installe l'apk sur votre appareil.
Bijoy Thangaraj

6

Si vous souhaitez installer apk de votre aab sur votre appareil à des fins de test, vous devez modifier la configuration avant de l'exécuter sur l'appareil connecté.

  1. Aller à Modifier les configurations
    entrez la description de l'image ici
  2. Sélectionnez le menu déroulant Déployer et changez-le de "Default apk" à "APK from app bundle".entrez la description de l'image ici
  3. Appliquez les modifications, puis exécutez-le sur l'appareil connecté. Le temps de construction augmentera après avoir effectué ce changement.

Cela installera un apk directement sur l'appareil connecté à partir de l'aab.


1
Cela m'a aidé à reproduire un bogue qui n'apparaît que sur la version de version. Il s'avère que le bogue apparaît lors de l'installation à partir d'AAB. Merci beaucoup.
Cerlin le

Juste pour clarifier, je suppose que les instructions et les captures d'écran proviennent d'Android Studio? [J'utilise Xamarin, pas Android Studio. Je réalise que la plupart des développeurs utilisent Android Studio.]
ToolmakerSteve

Oui, les instructions et les captures d'écran proviennent d'Android Studio 3.6.3.
Kartikeya_M

0

Non, si vous déboguez une application sans d'autres utilisateurs, utilisez le menu Build> Build APK (s) dans Android Studio ou exécutez-le dans votre appareil / émulateur, la version de débogage apk s'installera automatiquement. Si vous déboguez une application avec d'autres utilisateurs, utilisez le menu Créer> Générer l'APK signé .... Si vous souhaitez publier la version bêta, utilisez le Google Play Store. Vos fichiers APK seront dans app\build\outputs\apk\debuget des app\releasedossiers.



0

Utilisez (sous Linux): cd android ./gradlew assemblyRelease | assemblyDebug

Un APK non signé est généré pour chaque cas (pour le débogage ou le test)

REMARQUE: sous Windows, remplacez l'exécutable gradle par gradlew.bat

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.