Создайте файл Apk из aab файла (пакет приложений для Android)
Есть ли способ генерировать apk файл из приложения Android-приложения через терминал или с помощью студии Android?
Ответы
Ответ 1
По умолчанию в среде 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
Ответ 2
Хорошо, вот полный путь, который я должен был сделать
1.Загрузите bundletool-all-0.6.0.jar по этой ссылке, скачайте последнюю доступную версию
2. Создайте пакет приложений с помощью Android Studio и найдите его путь
в моем случае это E:\Projects\Android\Temp\app\build\outputs\bundle\debug\app.aab
3. Скопируйте банку bundletools в какое-то место и найдите его путь.
в моем случае это 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
, out_bundle_archive_set.zip
этот файл и все готово. У вас будет несколько apks
Проверьте это сообщение в блоге для получения дополнительной информации. также проверьте официальный сайт
Ответ 3
Люди уже объяснили, как это сделать с помощью командной строки. В завершение я подумал, что я также покажу способ сделать это через пользовательский интерфейс в Android Studio.
Когда вы открываете "Конфигурации запуска/отладки", вы можете выбрать "APK из комплекта приложения" (вместо "APK по умолчанию").
Смотрите скриншот:
Ответ 4
Пока никто не предоставил решение получить APK от AAB.
Это решение будет генерировать универсальный двоичный файл в виде apk.
Добавьте --mode = универсальный к вашей команде bundletool (если вам нужно подписанное приложение, используйте параметры --ks по мере необходимости).
bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
--mode=universal
Измените имя выходного файла с .apks на .zip
Распакуйте и исследуйте
Файл universal.apk - это ваше приложение
Этот универсальный двоичный файл, вероятно, будет довольно большим, но он является отличным решением для отправки в отдел контроля качества или распространения приложения в любом месте, кроме магазина Google Play.
Ответ 5
Существует инструмент под названием bundletool
, который может создать APK из вашего AAB файла:
Найти подробности об этом инструменте здесь: https://developer.android.com/studio/command-line/bundletool
Но вот некоторые основные моменты, взятые с этого сайта:
Создание APK файлов
Когда bundletool генерирует APK из вашего пакета приложений, он включает их в контейнер, называемый архивом набора APK, в котором используется расширение файла .apks. Чтобы создать набор APK для всех конфигураций устройства, поддерживаемых вашим приложением, из пакета приложения, используйте команду bundletool build-apks, как показано ниже:
bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
Обратите внимание, что приведенная выше команда создает набор неподписанных 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
Refer Geek Dashboard for more info.
Для тех, кто хочет сгенерировать один универсальный файл APK из вашего пакета приложений для Android, вы должны использовать флаг --universal
во время выполнения команды build-apks
.
java -jar bundletool.jar build-apks --bundle=your_app.aab --output=your_app.apks --mode=universal
Где
bundletool.jar - это файл jar bundletool, который вы загрузили здесь
your_app.aab - это комплект приложений Android для вашего приложения
your_app.apks - это выходной APK файл архива, который будет сгенерирован после запуска команды.
При выполнении вышеуказанной команды убедитесь, что вы поместили bundletool.jar и ваш AAB файл в одну и ту же папку.
Теперь вам нужно изменить формат файла your_app.apks на your_app.zip и извлечь его, чтобы найти файл universal.apk file
Примечание: используйте флаг –overwrite
, чтобы перезаписать файл APK, если он уже существует с таким именем. В противном случае команда bundletool
выдаст вам фатальную ошибку.
Ответ 7
Согласно документам, вы можете использовать ./gradlew :base:bundleDebug
чтобы построить, где base - имя вашего модуля. Вы можете попробовать эту команду в терминале внутри Android Studio.