Установите Android App Bundle на устройство

Я построил свой проект, используя новый формат Android App Bundle. С помощью файлов APK я могу загрузить APK на свое устройство, открыть его и сразу же установить приложение. Я загрузил свое приложение в виде пакета (формат .aab), и мой Nexus 5X под управлением Android 8.1 не может открыть файл. Есть ли способ установить AAB на устройства так же удобно, как и APK?

Похоже, это требует на несколько шагов больше, чем простой apk: developer.android.com/guide/app-bundle/test.

Mike M. 18.05.2018 23:25
141
1
138 307
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Ответ принят как подходящий

Короткий ответ:

Не прямо.

Более длинный ответ:

Android App Bundles - это формат публикации. На устройствах Android для установки приложений требуются файлы .apk.

PlayStore или любой другой источник, из которого вы устанавливаете, должен извлечь файлы apks из пакета, подписать каждый из них и затем установить их специально для целевого устройства.

Преобразование из .aab в .apk выполняется через набор инструментов.

Вы можете использовать Совместное использование внутреннего приложения, чтобы загрузить отлаживаемую сборку вашего приложения в Play Store и поделиться ею с тестировщиками.

В этом случае мы будем использовать опцию Build bundle (s), а не подписанный пакет, учитывая, что мы не можем публиковать отладочные приложения в play-store.

Oush 06.10.2018 20:21

В основном я делал это для локального тестирования.

keyboardsurfer 08.10.2018 11:53

Релиз (вместо исходных файлов) bundletool находится здесь: github.com/google/bundletool/releases

Kari 19.07.2019 12:26

В настоящее время это неправильный ответ, см. Другие ответы, чтобы создать файл apks.

CoolMind 16.08.2019 12:54

Больше не неправильный ответ; теперь включает упоминание о bundletool. Однако не дает подробностей об использовании, поэтому, возможно, стоит посмотреть другие ответы. Существует также Картикея ответ, как развернуть из Android Studio.

ToolmakerSteve 14.06.2020 00:24

Общий доступ к внутреннему приложению находился в состоянии «Ожидает публикации» в течение дня и еще не завершен для моего приложения. Пожалуйста, не говорите мне, что он проходит тот же процесс тщательной проверки, что и производственное приложение? @keyboardsurfer

ericn 04.08.2020 16:27

@ericn Первоначальная «публикация» приложения проходит обычным образом. Любой внутренний совместный доступ к приложениям, который вы делаете впоследствии, не должен блокироваться отзывами.

keyboardsurfer 05.08.2020 17:33

@keyboardsurfer Я думаю, что даже первоначальная проверка для внутреннего тестирования не нужна, но хорошо знать тот факт, что именно так все работает в настоящее время. Спасибо

ericn 05.08.2020 17:45

Установив aab прямо с устройства, я не нашел для этого способа.

Но есть способ установить его через командную строку, используя следующий документация Вы можете установить apk на устройство через BundleTool

Согласно комментарию "@Albert Vila Calvo", он отметил, что для установки bundletools с помощью HomeBrew используйте brew install bundletool.

Теперь вы можете установить извлечение apks из файла aab и установить его на устройство.

Извлечение файлов 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 файл
  • --output -> Место назначения и имя файла для сгенерированного файла apk
  • --ks -> Файл хранилища ключей, используемый для создания Android Bundle
  • --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

Если вы используете Mac, вы можете установить Bundletool с Homebrew: brew install bundletool. Затем просто запустите такие команды: bundletool build-apks --bundle=./app/release/app.aab --output=./app/release/app.apks

Albert Vila Calvo 04.04.2019 10:52

--ks-pass = pass: пароль указывает пароль для хранилища ключей. Чтобы указать пароль для ключевого файла, используйте --key-pass = pass: password

smitty1 02.05.2019 19:03

Я столкнулся с той же проблемой, я выполнил описанные вами шаги, однако, когда приложение установлено на моем устройстве Android, я не могу его открыть (оно открывает автоматически закрывается)

aName 21.07.2019 20:55

Спасибо! --key-pass=pass: ... требуется, но, как ни странно, пароль неверный, поэтому мне приходится вводить его вручную. После ... install-apks --adb=... он пишет: «APK-файлы были извлечены в каталог: ...», но эта папка не существует, и она не устанавливается на устройство.

CoolMind 16.08.2019 12:52

ПРИМЕР: 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-too‌​ls\adb.exe" --apks = "C:\Users\Aterr\Desktop\hack\extractedapks.apks"

Choletski 25.10.2019 09:48

Вы не можете установить комплект приложений [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.zip и извлеките zip-файл, перейдите в папку out_bundle_archive_set > standalones, где вы увидите список всех apks.

Ссылка от разработчиков Android на инструменты пакета ссылка на сайт

android developer reference

Для этого требуется ключ подписи и пароли, см. stackoverflow.com/a/52704544/2914140 и developer.android.com/studio/command-line/bundletool.

CoolMind 16.08.2019 09:59

@Cool Помните, что ключ подписи и пароли - это когда вы хотите создать набор подписанных apk из пакета и хотите развернуть apk на устройстве, проверьте обновленный ответ

Ali Tamoor 29.08.2019 11:31

нет папки с именем standalones, вместо этого есть разделение с именем

Gopal Singh Sirvi 18.07.2020 14:45

Используйте (в Linux): cd android ./gradlew assemblyRelease | assemblyDebug

Для каждого случая создается неподписанный APK (для отладки или тестирования)

ПРИМЕЧАНИЕ. В Windows замените исполняемый файл gradle на gradlew.bat.

Для MAC:

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

после того, как третий командный терминал показал путь к приложению, но папка недоступна

Furquan 05.06.2020 15:41

@Furquan, этот отображаемый путь является путем на вашем подключенном устройстве. Команда устанавливает apk на ваше устройство.

Bijoy Thangaraj 18.08.2020 15:46

Если вы хотите установить apk со своего aab на свое устройство для тестирования, вам необходимо отредактировать конфигурацию, прежде чем запускать ее на подключенном устройстве.

  1. Перейдите в Edit Configurations
  2. Выберите раскрывающееся меню «Развернуть» и измените его с «APK по умолчанию» на «APK из набора приложений» .
  3. Примените изменения, а затем запустите на подключенном устройстве. После внесения этого изменения время сборки увеличится.

Это установит apk прямо на устройство, подключенное из aab.

Это помогло мне воспроизвести одну ошибку, которая появляется только в сборке релиза. Оказывается, ошибка появляется при установке из AAB. Большое спасибо.

Cerlin 12.06.2020 18:13

Чтобы уточнить, я предполагаю, что инструкции и скриншоты взяты из Android Studio? [Я использую Xamarin, а не Android Studio. Я понимаю, что большинство разработчиков используют Android Studio.]

ToolmakerSteve 14.06.2020 00:18

Да, инструкции и скриншоты взяты из студии android 3.6.3.

Kartikeya_M 15.06.2020 07:20

Другие вопросы по теме