web-dev-qa-db-ja.com

aabファイルからApkファイルを生成する(Androidアプリバンドル)

ターミナル経由またはAndroidスタジオを使用して、Androidアプリバンドルからapkファイルを生成する方法はありますか?

21
Jayanth

デフォルトでは、IDEはアプリバンドルを使用してアプリをテスト用のローカルデバイスにデプロイしません

bundletool コマンドを参照してください

Debug apkコマンドの場合、

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

Release apkコマンドの場合、

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ここに私がしなければならなかった完全な方法があります

1.これからbundletool-all-0.6.0.jarをダウンロードします link 、利用可能な最新バージョンをダウンロードします

2. Android studioを使用してアプリバンドルを作成し、そのパスを見つけます

私の場合、E:\Projects\Android\Temp\app\build\outputs\bundle\debug\app.aab

3. bundletools jarをある場所にコピーし、そのパスを取得します

私の場合、E:\Temp\bundletool-all-0.6.0.jar

このコマンドを使用します

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

私の場合、それは

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.これにより、ファイルout_bundle_archive_set.apksが作成され、名前が.Zip out_bundle_archive_set.Zipに変更され、このファイルが抽出されて完了します。複数のapkがあります。

これを確認してください ブログ投稿 詳細 公式サイト もご覧ください

19
Manohar Reddy

人々はすでにコマンドラインでこれを行う方法について説明しています。完了のために、Android St​​udioのUIを介してそれを行う方法も示すと思いました。

「実行/デバッグ構成」を開くと、「アプリバンドルからAPK」を選択できます(「デフォルトAPK」の代わりに)。

スクリーンショットを見る:

enter image description here

13
Pierre

これまで、AABからAPKを取得するためのソリューションを提供した人はいませんでした。

このソリューションは、ユニバーサルバイナリをapkとして生成します。

Bundletoolコマンドに--mode = universalを追加します(署名済みアプリが必要な場合は、必要に応じて--ksパラメーターを使用します)。

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

出力ファイル名を.apksから.Zipに変更します

解凍して探索する

ファイルuniversal.apkはあなたのアプリです

このユニバーサルバイナリはおそらく非常に大きくなりますが、QA部門に送信したり、Google Playストア以外の場所にアプリを配布したりするのに最適なソリューションです。

10
Aaron Small

AABファイルからAPKを作成できるbundletoolというツールがあります。

このツールの詳細については、こちらをご覧ください。 https://developer.Android.com/studio/command-line/bundletool

しかし、ここでそのサイトから取られたいくつかのハイライト:

APKの構築

BundletoolがアプリバンドルからAPKを生成すると、APKセットアーカイブと呼ばれるコンテナにAPKが含まれます。これは、ファイル拡張子.apksを使用します。アプリがアプリバンドルからサポートするすべてのデバイス構成のAPKセットを生成するには、以下に示すようにbundletool build-apksコマンドを使用します。

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

上記のコマンドは、署名されていないAPKのAPKセットを作成することに注意してください。 APKをデバイスに展開する場合は、以下のコマンドに示すように、アプリの署名情報も含める必要があります。

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

APKのインストール

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

APKのデバイス固有のセットを生成します

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

詳細については、Geek Dashboardを参照

Androidアプリバンドルから単一のユニバーサルAPKファイルを生成する場合は、--universalコマンドの実行中にbuild-apksフラグを使用する必要があります。

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

bundletool.jarはダウンロードしたbundletool jarファイルです here

your_app.aabは、アプリのAndroidアプリバンドルです

your_app.apksは、コマンドを実行すると生成される出力APKアーカイブファイルです。

上記のコマンドを実行している間、bundletool.jarAABファイルを同じフォルダーに配置してください。

ここで、your_app。apksファイル形式をyour_app。Zipに変更し、それを抽出してuniversal.apkファイル

enter image description here

–overwriteフラグを使用して、同じ名前のAPKファイルが既に存在する場合はAPKファイルを上書きします。そうでない場合、bundletoolコマンドは致命的なエラーをスローします。

1
Amar Ilindra

docs によれば、./gradlew :base:bundleDebugを使用して、baseがモジュール名である場所にビルドできます。このコマンドは、Android St​​udio内のターミナルで試すことができます。

1
chornge