デバイスにAndroidAppBundleをインストールする


113

新しいAndroidAppBundle形式を使用してプロジェクトをビルドしました。APKファイルを使用すると、APKをデバイスにダウンロードして開き、すぐにアプリをインストールできます。アプリをバンドル(.aab形式)としてダウンロードしましたが、Android8.1を実行しているNexus5Xでファイルを開くことができません。APKと同じ便利な方法でデバイスにAABをインストールする方法はありますか?


2
単純なapkよりもいくつかの手順が必要なようです:developer.android.com/guide/app-bundle/test
マイク

回答:


108

短い答え:

直接ではありません。

長い答え:

Android AppBundlesは公開形式です。Androidデバイスでは、.apkアプリケーションをインストールするためにファイルが必要です。

PlayStoreまたはインストール元のその他のソースでは、バンドルからapkを抽出し、それぞれに署名してから、ターゲットデバイスに固有のapkをインストールする必要があります。

.aabからの.apkへの変換を介して行われbundletool

あなたは使用することができ、内部のApp共有をPlayストアにアプリのデバッグビルドをアップロードして、テスターと共有します。


その場合、Playストアでデバッグアプリを公開できないことを考慮して、署名されたバンドルではなく、ビルドバンドルオプションを使用します
Oush

私は主にローカルテストのためにそれを行います。
keyboardsurfer

3
bundletoolの(代わりにソースファイルの)リリースはこちら:github.com/google/bundletool/releases
カリ

現在、それは間違った答えapksです。ファイルを作成するには、他の答えを参照してください。
CoolMind

1
@ericnアプリの最初の「公開」は、通常のプロセスを経ています。後で行う内部アプリ共有は、レビューによってブロックされるべきではありません。
キーボード

52

デバイスから直接aabをインストールしましたが、その方法が見つかりませんでした。

ただし、次のドキュメントを使用してコマンドラインからインストールする方法があります。BundleToolを使用してapkをデバイスにインストールできます。

「@AlbertVilaCalvo」のコメントによると、HomeBrewを使用してbundletoolsをインストールするには、 brew install bundletool

これで、aabファイルからextract apksをインストールして、デバイスにインストールできます。

次のコマンドから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

引数:

  • -バンドル-> Androidバンドル.aabファイル
  • --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-> APKファイルをインストールする必要があります

25
Macを使用している場合は、HomebrewでBundletoolをインストールできますbrew install bundletool。そして、ちょうどこのようなコマンドを実行しますbundletool build-apks --bundle=./app/release/app.aab --output=./app/release/app.apks
アルバート・ビラ・カルボ

3
--ks-pass = pass:passwordは、キーストアのパスワードを指定します。--keyパスキーファイル用のパスワードを指定するには=パス:パスワードを
smitty1

私は同じ問題に直面しています。あなたが説明した手順に従いましたが、アプリがAndroidデバイスにインストールされていると、開くことができません(自動的に閉じます)
aName

ありがとう!--key-pass=pass:...が必要ですが、奇妙なことにパスワードが間違っているため、手動で入力する必要があります。... install-apks --adb=...書き込み後: 'APKはディレクトリ:...'に抽出されましたが、そのフォルダは存在せず、デバイスにインストールされません。
CoolMind

例: 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

あなたはアプリのバンドルをインストールすることはできません[NAME].aab、それは形式を公開されているため、Androidデバイスに直接、必ずしも必要で抽出する方法がありますapkからbundle、あなたにそれをインストールデバイスは、プロセスは以下の通りです

  1. からbundletoolをダウンロード ここます
  2. これをターミナルで実行し、
java -jar bundletool.jar build-apks --bundle=bundleapp.aab --output=out_bundle_archive_set.apks
  1. 最後のステップでは、という名前のファイルを生成します。名前をout_bundle_archive_set.apks変更してout_bundle_archive_set.zipzipファイルを抽出し、フォルダーout_bundle_archive_set > standalonesにジャンプします。ここに、すべてのapkのリストが表示されます。

バンドルツールのリンクについては、Android開発者からの参照があります

アンドロイド開発者リファレンス


署名キーとパスワードが必要です。stackoverflow.com / a / 52704544/2914140およびdeveloper.android.com/studio/command-line/bundletoolを参照してください。
CoolMind

@CoolMind署名キーとパスワードは、バンドルから署名されたapkのセットを構築し、デバイスにapkをデプロイする場合に使用します。更新された回答を確認してください
AliTamoor19年

3番目のステップは本当に必要です、どうもありがとう。
ディレン

スタンドアロンという名前のフォルダーはなく、代わりに名前付きの分割があります
Gopal Singh Sirvi

15

Mac用:

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

問題なく仕事をしただけです。その日を救った!
asozcan

3番目のコマンドターミナルがアプリのパスを表示した後、フォルダーは使用できません
Furquan

1
@Furquan、表示されるパスは、接続されているデバイスのパスです。このコマンドは、apkをデバイスにインストールします。
Bijoy Thangaraj

6

テスト目的でapkをaabからデバイスにインストールする場合は、接続されたデバイスで実行する前に構成を編集する必要があります。

  1. 構成の編集に移動
    ここに画像の説明を入力してください
  2. [デプロイ]ドロップダウンを選択し、[デフォルトのapk]から[アプリバンドルからのAPK]に変更します。ここに画像の説明を入力してください
  3. 変更を適用してから、接続されているデバイスで実行します。この変更を行うと、ビルド時間が長くなります。

これにより、apkがaabから接続されているデバイスに直接インストールされます。


1
これは、リリースビルドでのみ発生する1つのバグを再現するのに役立ちました。AABからインストールするとバグが発生していることがわかりました。どうもありがとう。
Cerlin

明確にするために、手順とスクリーンショットはAndroid Studioのものだと思いますか?[Android Studioを使用せず、Xamarinを使用しています。ほとんどの開発者が
AndroidStudio

はい、手順とスクリーンショットはandroid studio3.6.3のものです。
kartikeya_M

0

いいえ、他のユーザーなしでアプリをデバッグしている場合は、AndroidStudioの[ビルド] > [APKのビルド]メニューを使用するか、デバイス/エミュレーターで実行すると、デバッグリリースapkが自動的にインストールされます。他の人と一緒にアプリをデバッグしている場合は、[ビルド]> [署名付きAPKの生成... ]メニュー使用します。ベータ版を公​​開する場合は、GooglePlayストアを使用してください。APKはとフォルダにapp\build\outputs\apk\debugありapp\releaseます。



0

使用(Linuxの場合): cd android ./gradlew assemblyRelease | assemblyDebug

署名されていないAPKがケースごとに生成されます(デバッグまたはテスト用)

注:Windowsでは、gradlew.batのgradle実行可能ファイルを置き換えます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.