Преобразование AAB в APK Online: что на самом деле делает этот инструмент
Android App Bundle (.aab) — это формат, который Google Play просит разработчиков загрузить, но его нельзя установить на телефон. Если у вас есть файл .aab с сервера сборки, конвейера CI или коллеги, сначала необходимо превратить его в устанавливаемый .apk. На этой странице есть две вещи для этой работы: интерактивный Конструктор команд AAB в APK, который записывает точную команду Bundletool для вашей операционной системы, и AAB-файловый проводник, который открывает пакет в вашем браузере, чтобы вы могли увидеть, что находится внутри, прежде чем конвертировать его.
Само преобразование выполняется с помощью официальной программы Google bundletool, которая представляет собой программу Java. Поскольку Bundletool требуется среда выполнения Java и доступ к вашему хранилищу ключей, фактический этап сборки происходит на вашем компьютере, а не на наших серверах. Ваш файл .aab никогда никуда не загружается. Конструктор просто устраняет догадки, поэтому вы можете скопировать правильную, готовую к запуску команду вместо того, чтобы запоминать имена флагов.
AAB против APK: почему нельзя просто переименовать файл
Многие люди ищут, как изменить AAB на APK, переименовав расширение, но это никогда не работает. .apk — это отдельный автономный пакет, который Android может установить напрямую. .aab — это контейнер публикации: он содержит скомпилированный код и ресурсы, разделенные на модули, и ожидает, что Google Play или Bundletool сгенерируют из него окончательные APK-файлы, оптимизированные для устройства. Переименование файла не распаковывает эти модули и ничего не подписывает, поэтому Android отказывается его устанавливать. Единственный надежный способ конвертировать Пакет приложений Android в APK — позволить Bundletool собрать для вас набор APK.
Как конвертировать AAB в APK на Windows, Mac и Linux
Шаги одинаковы на каждой платформе, меняется только стиль пути к файлу, поэтому в приведенном выше построителе команд есть переключатель для Windows, macOS и Linux. Вот весь поток от начала до конца:
- Установите Java JDK 8 или новее. Запустите java -version в терминале, чтобы убедиться, что Java находится в вашем PATH.
- Загрузите пакетный инструмент. Получите последнюю версию bundletool-all.jar на официальной странице выпусков Google на GitHub.
- Создайте набор APK. Направьте Bundletool на свой пакет и позвольте ему создать архив .apks: java -jar bundletool-all.jar build-apks --bundle=app.aab --output=app.apks --mode=universal
- Откройте архив .apks. Это просто ZIP-файл, поэтому распакуйте его, и внутри вы найдете universal.apk.
- Установите на свое устройство. Скопируйте APK на свой телефон и загрузите его или используйте bundletool install-apks с устройством, подключенным через USB.
Универсальный APK против разделенных APK: какой из них следует создать?
Если вам нужен один файл, который устанавливается на любой телефон, используйте --mode=universal. В результате создается единый универсальный APK из вашего AAB, который объединяет каждую архитектуру ЦП, плотность экрана и язык в один пакет. Он больше, но это самый простой вариант для тестирования, архивирования или публикации сборки за пределами Play Store. Если вы отключите этот режим, Bundletool вместо этого создаст разделенные APK-файлы, которые обрезаются для одного конкретного устройства, поэтому они загружаются меньше, но вам придется установить соответствующий набор вместе. Для большинства людей, которым просто нужно преобразовать .aab для быстрой установки, универсальный APK-файл является правильным выбором.
Подписание APK, полученного от AAB
Android не будет устанавливать APK, если он не подписан. Для тестирования Bundletool может автоматически подписывать ключ отладки, что и делает опция «Использовать хранилище ключей отладки» в сборщике. Если вы готовите сборку выпуска, например, для распространения на своем веб-сайте, подпишите ее с помощью собственного хранилища ключей, заполнив поля «Путь к хранилищу ключей», «Пароль хранилища ключей», «Псевдоним ключа» и «Пароль ключа». Затем сборщик добавляет флаги --ks, --ks-pass, --ks-key-alias и --key-pass, чтобы получаемый вами APK содержал вашу реальную производственную подпись, а не одноразовую отладочную подпись.
Распространенные ошибки Bundletool и способы их исправления
Две проблемы возникают снова и снова. Сообщение «bundletool: команда не найдена» означает, что вы попытались запустить Bundletool, как если бы это была встроенная команда. Это файл JAR, поэтому вы всегда вызываете его с помощью java -jar bundletool-all.jar. Ошибка «Нет ключа/сертификата» означает, что данные подписи отсутствуют: либо добавьте --mode=universal для неподписанной тестовой сборки, либо укажите флаги хранилища ключей, как описано выше. Вкладка «Устранение неполадок» выше на странице содержит больше из них, а AAB Explorer позволяет вам убедиться, что ваш пакет действительно содержит ожидаемые модули, прежде чем тратить время на отладку команды.
Когда вам действительно понадобится конвертировать AAB?
Обычными причинами являются тестирование сборки выпуска на реальном устройстве перед публикацией, передача сборки тестировщику, который не использует Google Play, сохранение устанавливаемой копии вашего собственного приложения для своих записей или проведение контроля качества на оборудовании, которое не доступно для внутреннего тестирования Play Store. Какой бы ни была причина, конвертируйте только те пакеты приложений, на использование которых у вас есть право, например ваши собственные сборки или пакеты, на работу с которыми у вас есть четкое разрешение.