Я построил свой проект, используя новый формат Android App Bundle. С помощью файлов APK я могу загрузить APK на свое устройство, открыть его и сразу же установить приложение. Я загрузил свое приложение в виде пакета (формат .aab), и мой Nexus 5X под управлением Android 8.1 не может открыть файл. Есть ли способ установить AAB на устройства так же удобно, как и APK?
Не прямо.
Android App Bundles - это формат публикации. На устройствах Android для установки приложений требуются файлы .apk.
PlayStore или любой другой источник, из которого вы устанавливаете, должен извлечь файлы apks из пакета, подписать каждый из них и затем установить их специально для целевого устройства.
Преобразование из .aab в .apk выполняется через набор инструментов.
Вы можете использовать Совместное использование внутреннего приложения, чтобы загрузить отлаживаемую сборку вашего приложения в Play Store и поделиться ею с тестировщиками.
В этом случае мы будем использовать опцию Build bundle (s), а не подписанный пакет, учитывая, что мы не можем публиковать отладочные приложения в play-store.
В основном я делал это для локального тестирования.
Релиз (вместо исходных файлов) bundletool находится здесь: github.com/google/bundletool/releases
В настоящее время это неправильный ответ, см. Другие ответы, чтобы создать файл apks.
Больше не неправильный ответ; теперь включает упоминание о bundletool. Однако не дает подробностей об использовании, поэтому, возможно, стоит посмотреть другие ответы. Существует также Картикея ответ, как развернуть из Android Studio.
Общий доступ к внутреннему приложению находился в состоянии «Ожидает публикации» в течение дня и еще не завершен для моего приложения. Пожалуйста, не говорите мне, что он проходит тот же процесс тщательной проверки, что и производственное приложение? @keyboardsurfer
@ericn Первоначальная «публикация» приложения проходит обычным образом. Любой внутренний совместный доступ к приложениям, который вы делаете впоследствии, не должен блокироваться отзывами.
@keyboardsurfer Я думаю, что даже первоначальная проверка для внутреннего тестирования не нужна, но хорошо знать тот факт, что именно так все работает в настоящее время. Спасибо
Установив 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
Аргументы:
Тогда у вас будет файл с расширением .apks Итак, теперь вам нужно установить его на устройство
java -jar bundletool-all-0.6.0.jar install-apks --adb=/android-sdk/platform-tools/adb --apks=app.apks
Аргументы:
Если вы используете Mac, вы можете установить Bundletool с Homebrew: brew install bundletool. Затем просто запустите такие команды: bundletool build-apks --bundle=./app/release/app.aab --output=./app/release/app.apks
--ks-pass = pass: пароль указывает пароль для хранилища ключей. Чтобы указать пароль для ключевого файла, используйте --key-pass = pass: password
Я столкнулся с той же проблемой, я выполнил описанные вами шаги, однако, когда приложение установлено на моем устройстве Android, я не могу его открыть (оно открывает автоматически закрывается)
Спасибо! --key-pass=pass: ... требуется, но, как ни странно, пароль неверный, поэтому мне приходится вводить его вручную. После ... install-apks --adb=... он пишет: «APK-файлы были извлечены в каталог: ...», но эта папка не существует, и она не устанавливается на устройство.
ПРИМЕР: 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"
Вы не можете установить комплект приложений [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, где вы увидите список всех apks.Ссылка от разработчиков Android на инструменты пакета ссылка на сайт
Для этого требуется ключ подписи и пароли, см. stackoverflow.com/a/52704544/2914140 и developer.android.com/studio/command-line/bundletool.
@Cool Помните, что ключ подписи и пароли - это когда вы хотите создать набор подписанных apk из пакета и хотите развернуть apk на устройстве, проверьте обновленный ответ
нет папки с именем standalones, вместо этого есть разделение с именем
Используйте (в 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, этот отображаемый путь является путем на вашем подключенном устройстве. Команда устанавливает apk на ваше устройство.
Если вы хотите установить apk со своего aab на свое устройство для тестирования, вам необходимо отредактировать конфигурацию, прежде чем запускать ее на подключенном устройстве.


Это установит apk прямо на устройство, подключенное из aab.
Это помогло мне воспроизвести одну ошибку, которая появляется только в сборке релиза. Оказывается, ошибка появляется при установке из AAB. Большое спасибо.
Чтобы уточнить, я предполагаю, что инструкции и скриншоты взяты из Android Studio? [Я использую Xamarin, а не Android Studio. Я понимаю, что большинство разработчиков используют Android Studio.]
Да, инструкции и скриншоты взяты из студии android 3.6.3.
Похоже, это требует на несколько шагов больше, чем простой apk: developer.android.com/guide/app-bundle/test.