Est-il possible de générer un fichier apk à partir de Android app Bundle via un terminal ou à l'aide de Android studio?
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
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
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:
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.
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
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
Où 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
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.
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.