新しいAndroid App Bundle形式を使用してプロジェクトを構築しました。 APKファイルを使用して、APKをデバイスにダウンロードして開き、すぐにアプリをインストールできます。アプリをバンドル(.aab形式)としてダウンロードしましたが、Android 8.1を実行しているNexus 5Xでファイルを開けません。 APKと同じ便利な方法でデバイスにAABをインストールする方法はありますか?
短い答え:いいえ
より長い答え:
Androidアプリバンドルは公開形式です。 Androidデバイスでは、アプリケーションをインストールするために.apkファイルが必要です。
PlayStoreまたはインストール元のその他のソースは、バンドルからapkを抽出し、それぞれに署名してから、ターゲットデバイスに固有のインストールする必要があります。
.aabから.apkへの変換は bundletool を介して行われます
デバイスから直接aabをインストールしましたが、その方法が見つかりませんでした。しかし、次のコマンドラインを使用してインストールする方法があります documentation デバイスにapkをインストールできます BundleTool これでaabファイルから抽出apkをインストールしてインストールできますデバイスに
次のコマンドからapkファイルを抽出する
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:password
引数:
-bundle-> Android Bundle .aab file
-output->生成されたapkファイルの宛先とファイル名
-ks-> Androidバンドルの生成に使用されるキーストアファイル
-ks-key-alias->キーストアファイルのエイリアス
-ks-pass->エイリアスファイルのパスワード(パスワード値の前の「pass」プレフィックスに注意してください)
次に、拡張子が.apksのファイルがあるので、デバイスにインストールする必要があります
Java -jar bundletool-all-0.6.0.jar install-apks --adb =/Android-sdk/platform-tools/adb --apks = app.apks
引数:
-adb-> adbファイルへのパス
-apks-> Apksファイルをインストールする必要があります
アプリバンドル[NAME].aab
をAndroidデバイスに直接インストールすることはできません。これは公開形式なので、apk
から必要なbundle
を抽出してインストールする方法がありますデバイス、プロセスは次のとおりです
Java -jar bundletool.jar build-apks --bundle=bundleapp.aab --output=out_bundle_archive_set.apks
out_bundle_archive_set.apks
という名前のファイルを生成し、名前をout_bundle_archive_set.Zip
に変更し、Zipファイルを抽出し、フォルダーout_bundle_archive_set > standalones
にジャンプして、すべてのapkのリストを表示します。バンドルツールのAndroid開発者からの参照があります link
使用(Linux):cd Android ./gradlew assemblyRelease | assemblyDebug
署名されていないAPKがケースごとに生成されます(デバッグまたはテスト用)
注:Windowsでは、gradle実行可能ファイルをgradlew.batに置き換えます
ええ、このGoogleツールを使用する必要があります: https://github.com/google/bundletool
いいえ、他のユーザーなしでアプリをデバッグする場合は、Android Studioのビルド> APKのビルドメニューを使用するか、デバイス/エミュレーターで実行しますdebug release apkは自動的にインストールされます。他のユーザーとアプリをデバッグする場合は、ビルド>署名済みAPKの生成...メニューを使用します。 ベータ版を公開する場合は、Google Playストアを使用してください。 APKはapp\build\outputs\apk\debug
およびapp\release
フォルダーにあります。