web-dev-qa-db-fra.com

Générer un fichier Apk à partir d'un fichier aab (ensemble d'applications Android)

Est-il possible de générer un fichier apk à partir de Android app Bundle via un terminal ou à l'aide de Android studio?

21
Jayanth

Par défaut, IDE n'utilise pas les ensembles d'applications pour déployer votre application sur un périphérique local à des fins de test.

Référez-vous à la commande bundletool

Pour la commande Debug apk,

bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks

Pour la commande apk Release,

bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
--ks=/MyApp/keystore.jks
--ks-pass=file:/MyApp/keystore.pwd
--ks-key-alias=MyKeyAlias
--key-pass=file:/MyApp/key.pwd
17
Firoz Memon

Ok voici le chemin complet que je devais faire

1.Téléchargez bundletool-all-0.6.0.jar à partir de ceci lien , téléchargez la dernière version disponible

2.Créez un ensemble d'applications en utilisant Android studio et localisez son chemin.

dans mon cas, c'est E:\Projects\Android\Temp\app\build\outputs\bundle\debug\app.aab

3.Copiez le fichier bundletools dans un fichier et obtenez son chemin.

dans mon cas, c'est E:\Temp\bundletool-all-0.6.0.jar

utiliser cette commande

Java -jar "BUNDLE_TOOL_JAR_PATH" build-apks --bundle="BUNDLE_PATH" --output=YOUR_OUTPUT_NAME.apks

Dans mon cas ce sera

Java -jar "E:\Temp\bundletool-all-0.6.0.jar" build-apks --bundle="E:\Projects\Android\Temp\app\build\outputs\bundle\debug\app.aab" --output=out_bundle_archive_set.apks

4.Ceci créera un fichier out_bundle_archive_set.apks, le renommera en .Zip out_bundle_archive_set.Zip, extraira ce fichier et vous aurez fini. Vous aurez plusieurs apks.

Vérifiez ceci blog post pour plus d'informations. Voir aussi site officiel

19
Manohar Reddy

Les gens ont déjà expliqué comment procéder avec la ligne de commande. Pour terminer, je pensais également indiquer le moyen de le faire via l'interface utilisateur dans Android Studio.

Lorsque vous ouvrez vos "Configurations Exécuter/Déboguer", vous pouvez sélectionner "APK from bundle d'application" (au lieu de "Default APK").

Voir la capture d'écran:

enter image description here

13
Pierre

Jusqu'à présent, personne n'a fourni la solution pour obtenir l'APK d'un AAB.

Cette solution générera un binaire universel comme un apk.

Ajoutez --mode = universal à votre commande bundletool (si vous avez besoin d’une application signée, utilisez les paramètres --ks selon vos besoins).

bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
--mode=universal

Changez le nom du fichier de sortie de .apks à .Zip

Décompressez et explorez

Le fichier universal.apk est votre application

Ce binaire universel sera probablement assez volumineux, mais constitue une excellente solution pour l'envoi au service d'assurance qualité ou la distribution de l'application ailleurs que sur le Google Play Store.

10
Aaron Small

Il existe un outil appelé bundletool, qui permet de créer des APK de votre fichier AAB:

Vous trouverez des détails sur cet outil ici: https://developer.Android.com/studio/command-line/bundletool

Mais voici quelques faits saillants de ce site:

Créer des APK

Lorsque bundletool génère des APK de votre bundle d’applications, il les inclut dans un conteneur appelé archive de jeux d’apk, qui utilise l’extension de fichier .apks. Pour générer un ensemble APK pour toutes les configurations de périphérique prises en charge par votre application à partir de votre bundle d'applications, utilisez la commande bundletool build-apks, comme indiqué ci-dessous:

bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks

Notez que la commande ci-dessus crée un ensemble APK de fichiers APK non signés. Si vous souhaitez déployer les fichiers APK sur un périphérique, vous devez également inclure les informations de signature de votre application, comme indiqué dans la commande ci-dessous.

bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
  --ks=/MyApp/keystore.jks
  --ks-pass=file:/MyApp/keystore.pwd
  --ks-key-alias=MyKeyAlias
  --key-pass=file:/MyApp/key.pwd

Installation d'APK

bundletool install-apks --apks=/MyApp/my_app.apks

Génère un ensemble d'APK spécifiques à l'appareil

bundletool build-apks --connected-device --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
6
Christopher

Consultez Geek Dashboard pour plus d'informations .

Pour ceux qui cherchent à générer un seul fichier APK universel à partir de votre lot Android App, vous devez utiliser le drapeau --universal lors de l'exécution de la commande build-apks.

Java -jar bundletool.jar build-apks --bundle=your_app.aab --output=your_app.apks --mode=universal

bundletool.jar est le fichier jar de bundletool que vous avez téléchargé ici

your_app.aab est l'ensemble Android de votre application.

your_app.apks est le fichier archive APKs de sortie qui sera généré une fois que vous aurez exécuté la commande.

Lorsque vous exécutez la commande ci-dessus, assurez-vous de placer bundletool.jar et votre fichier AAB dans le même dossier.

Maintenant, vous devez changer le format de fichier your_app. apks en your_app. Zip et extrayez-le pour trouver le fichier universal.apk

enter image description here

Remarque : Utilisez l'indicateur –overwrite pour écraser le fichier APKs s'il en existe déjà un du même nom. Sinon, la commande bundletool vous jettera une erreur fatale.

1
Amar Ilindra

Selon le docs , vous pouvez utiliser ./gradlew :base:bundleDebug pour construire où base est le nom de votre module. Vous pouvez essayer cette commande dans le terminal à l'intérieur de Android Studio.

1
chornge