bundletool
— это базовый инструмент, который Android Studio, плагин Android Gradle и Google Play используют для создания пакета приложений Android. bundletool
может конвертировать пакет приложений в различные APK-файлы, которые развертываются на устройствах.
Пакеты Android SDK (ASB) и их APK создаются с помощью bundletool
. Он также доступен в виде инструмента командной строки, поэтому вы можете самостоятельно создавать пакеты приложений и пакеты SDK, а также заново создавать серверную сборку Google Play APK-файлов вашего приложения или APK-файлов SDK с поддержкой среды выполнения .
Скачать bundletool
Если вы еще этого не сделали, скачайте bundletool
из репозитория GitHub .
Создайте и протестируйте пакет приложений
Вы можете использовать Android Studio или инструмент командной строки bundletool
для создания пакета приложений Android, а затем протестировать создание APK-файлов из этого пакета приложений.
Создайте пакет приложений
Используйте Android Studio и плагин Android Gradle для создания и подписания пакета приложений Android . Однако если использование IDE невозможно (например, если вы используете сервер непрерывной сборки), вы также можете собрать пакет приложений из командной строки и подписать его с помощью jarsigner
.
Дополнительные сведения о создании пакетов приложений с помощью bundletool
см. в разделе Создание пакета приложений с помощью Bundletool .
Создайте набор APK-файлов из пакета приложений.
После создания пакета Android App Bundle проверьте, как Google Play использует его для создания APK и как эти APK ведут себя при развертывании на устройстве.
Есть два способа протестировать пакет приложений:
- Используйте инструмент командной строки
bundletool
локально. - Загрузите свой пакет в Play Console через Google Play, используя тестовую версию.
В этом разделе объясняется, как использовать bundletool
для локального тестирования вашего пакета приложений.
Когда bundletool
создает APK-файлы из вашего пакета приложений, он включает сгенерированные APK-файлы в контейнер, называемый архивом набора APK , который использует расширение файла .apks
. Чтобы создать набор APK для всех конфигураций устройств, которые поддерживает ваше приложение, из пакета приложения, используйте команду bundletool build-apks
, как показано:
bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
Если вы хотите развернуть APK-файлы на устройстве, вам также необходимо включить информацию о подписи вашего приложения, как показано в следующей команде. Если вы не укажете информацию для подписи, bundletool
попытается подписать ваши 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
В следующей таблице более подробно описаны различные флаги и параметры, которые вы можете установить при использовании команды bundletool build-apks
:
Флаг | Описание |
---|---|
--bundle= path | (Обязательно) Указывает путь к пакету приложений, созданному с помощью Android Studio. Чтобы узнать больше, прочтите «Создайте свой проект» . |
--output= path | (Обязательно) Указывает имя выходного файла .apks , который содержит все артефакты APK для вашего приложения. Чтобы протестировать артефакты в этом файле на устройстве, выполните действия, описанные в разделе о развертывании APK-файлов на подключенном устройстве . |
--overwrite | Перезаписывает любой существующий выходной файл по пути, указанному вами с помощью опции --output . Если вы не включите этот флаг и выходной файл уже существует, вы получите ошибку сборки. |
--aapt2= path | Указывает собственный путь к AAPT2. По умолчанию bundletool включает собственную версию AAPT2. |
--ks= path | (Необязательно) Указывает путь к хранилищу ключей развертывания, используемому для подписи APK. Если вы не включите этот флаг, bundletool попытается подписать ваши APK-файлы с помощью ключа подписи отладки. |
--ks-pass=pass: password или --ks-pass=file: /path/to/file | Указывает пароль хранилища ключей. Если вы указываете пароль в виде обычного текста, дополните его pass: . Если вы передаете путь к файлу, содержащему пароль, укажите его с помощью file: . Если вы укажете хранилище ключей с помощью флага --ks без указания --ks-pass , bundletool запросит пароль из командной строки. |
--ks-key-alias= alias | Указывает псевдоним ключа подписи, который вы хотите использовать. |
--key-pass=pass: password или --key-pass=file: /path/to/file | Указывает пароль для ключа подписи. Если вы указываете пароль в виде обычного текста, дополните его pass: . Если вы передаете путь к файлу, содержащему пароль, укажите его с помощью file: .Если этот пароль идентичен паролю для самого хранилища ключей, вы можете опустить этот флаг. |
--connected-device | Указывает bundletool создать APK, предназначенные для конфигурации подключенного устройства. Если вы не включите этот флаг, bundletool создаст APK-файлы для всех конфигураций устройств, которые поддерживает ваше приложение. |
--device-id= serial-number | Если у вас более одного подключенного устройства, используйте этот флаг, чтобы указать серийный идентификатор устройства, на котором вы хотите развернуть свое приложение. |
--device-spec= spec_json | Предоставляет путь к файлу .json , в котором указана конфигурация устройства, на которую вы хотите настроить таргетинг. Чтобы узнать больше, перейдите в раздел о том, как создавать и использовать файлы JSON со спецификациями устройств . |
--mode=universal | Устанавливает universal режим. Используйте этот параметр, если вы хотите, чтобы bundletool создал один APK, включающий весь код и ресурсы вашего приложения, чтобы APK был совместим со всеми конфигурациями устройств, которые поддерживает ваше приложение. Примечание. Имейте в виду, что эти APK-файлы больше, чем те, которые оптимизированы для конкретной конфигурации устройства. Однако ими легче поделиться с внутренними тестировщиками, которые, например, хотят протестировать ваше приложение на нескольких конфигурациях устройств. |
--local-testing | Включает ваш пакет приложений для локального тестирования. Локальное тестирование позволяет проводить быстрые итеративные циклы тестирования без необходимости загрузки на серверы Google Play. Пример проверки установки модуля с использованием флага |
Развертывание APK-файлов на подключенном устройстве
После того как вы создадите набор APK, bundletool
может развернуть нужную комбинацию APK из этого набора на подключенное устройство.
Например, если у вас есть подключенное устройство под управлением Android 5.0 (уровень API 21) или выше, bundletool
передает базовый APK, APK функциональных модулей и APK конфигурации, необходимые для запуска вашего приложения на этом устройстве. Альтернативно, если ваше подключенное устройство работает под управлением Android 4.4 (уровень API 20) или ниже, bundletool
ищет совместимый мульти-APK для развертывания на вашем устройстве.
Чтобы развернуть приложение из набора APK, используйте команду install-apks
и укажите путь к набору APK с помощью флага --apks= /path/to/apks
, как показано в следующей команде. Если у вас подключено несколько устройств, укажите целевое устройство, добавив флаг --device-id= serial-id
.
bundletool install-apks --apks=/MyApp/my_app.apks
Создайте набор APK для конкретного устройства.
Если вы не хотите создавать набор APK для всех конфигураций устройств, которые поддерживает ваше приложение, вы можете создать APK, предназначенные только для конфигурации подключенного устройства, с помощью параметра --connected-device
, как показано в следующей команде. Если у вас подключено несколько устройств, укажите целевое устройство, включив флаг --device-id= serial-id
.
bundletool build-apks --connected-device --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
Создание и использование файлов JSON со спецификациями устройств.
bundletool
может создать набор APK, ориентированный на конфигурацию устройства, указанную в файле JSON. Чтобы сначала создать файл JSON для подключенного устройства, выполните следующую команду:
bundletool get-device-spec --output=/tmp/device-spec.json
bundletool
создает файл JSON для вашего устройства в каталоге инструмента. Затем вы можете передать файл в bundletool
чтобы сгенерировать набор APK, предназначенных только для конфигурации, описанной в этом файле JSON, следующим образом:
bundletool build-apks --device-spec=/MyApp/pixel2.json --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
Вручную создайте спецификацию устройства в формате JSON.
Если у вас нет доступа к устройству, для которого вы хотите создать целевой набор APK (например, если вы хотите опробовать свое приложение на устройстве, которого у вас нет под рукой), вы можете вручную создать файл JSON, используя следующий формат:
{
"supportedAbis": ["arm64-v8a", "armeabi-v7a"],
"supportedLocales": ["en", "fr"],
"screenDensity": 640,
"sdkVersion": 27
}
Затем вы можете передать этот JSON команде bundle extract-apks
, как описано в предыдущем разделе.
Извлечение APK-файлов для конкретного устройства из существующего набора APK
Если у вас есть существующий набор APK и вы хотите извлечь из него подмножество APK, предназначенное для определенной конфигурации устройства, вы можете использовать команду extract-apks
и указать JSON спецификации устройства, как показано ниже:
bundletool extract-apks --apks=/MyApp/my_existing_APK_set.apks --output-dir=/MyApp/my_pixel2_APK_set.apks --device-spec=/MyApp/bundletool/pixel2.json
Измерьте предполагаемый размер загрузки APK в наборе APK
Чтобы измерить предполагаемый размер загрузки APK-файлов в наборе APK, поскольку они будут передаваться по сети в сжатом виде, используйте команду get-size total
:
bundletool get-size total --apks=/MyApp/my_app.apks
Вы можете изменить поведение команды get-size total
используя следующие флаги:
Флаг | Описание |
---|---|
--apks= path | (Обязательно) Указывает путь к существующему файлу набора APK, размер загрузки которого измеряется. |
--device-spec= path | Указывает путь к файлу спецификации устройства (из get-device-spec или созданный вручную), который будет использоваться для сопоставления. Вы можете указать частичный путь для оценки набора конфигураций. |
--dimensions= dimensions Указывает размеры, используемые при вычислении оценок размера. Принимает список, разделенный запятыми: SDK , ABI , SCREEN_DENSITY и LANGUAGE . Чтобы измерить все измерения, укажите ALL . | |
--instant | Измеряет размер загрузки APK-файлов с мгновенной поддержкой, а не устанавливаемых APK-файлов. По умолчанию bundletool измеряет размеры загружаемых APK-файлов. |
--modules= modules | Указывает разделенный запятыми список модулей в наборе APK, которые будут учитываться при измерении. Команда bundletool автоматически включает все зависимые модули для указанного набора. По умолчанию команда измеряет размер загрузки всех модулей, установленных во время первой загрузки. |
Создайте пакет приложений с зависимостью пакета SDK (экспериментально).
Вы можете создать свой Android App Bundle с помощью зависимости Android SDK Bundle (ASB) из командной строки и подписать его с помощью jarsigner .
Каждый модуль пакета приложения включает файл буфера протокола модуля ( .pb
): runtime_enabled_sdk_config.pb
. Этот файл содержит список SDK, от которых зависит модуль пакета приложения. Полное определение этого файла см. в файле runtime_enabled_sdk_config.proto
.
Чтобы создать пакет приложения с зависимостью пакета SDK, выполните действия, описанные в разделе о создании пакета приложения с помощью Bundletool , и добавьте файл runtime_enabled_sdk_config.pb
в ZIP-файл каждого модуля приложения со скомпилированным кодом и ресурсами.
Некоторые примечательные поля в файле runtime_enabled_sdk_config.pb
:
Дайджест сертификата: дайджест SHA-256 сертификата для ключа, используемого для подписи APK SDK. Это соответствует сертификату в файле
SdkMetadata.pb
в формате архива Android SDK .Идентификатор пакета ресурсов: идентификатор пакета, с которым переназначаются все ресурсы в этом SDK при создании APK для встраивания SDK в приложение. Это обеспечивает обратную совместимость.
SDK может присутствовать только в одном модуле. Если несколько модулей зависят от одного и того же SDK, эту зависимость следует дедуплицировать и перенести в базовый модуль. Разные модули не могут зависеть от разных версий SDK.
Создание APK-файлов из пакета приложений с зависимостью пакета SDK (экспериментально)
Чтобы создать APK-файлы из пакета приложений, выполните действия, описанные в разделе о создании набора APK-файлов из пакета приложений или в разделе о создании набора APK-файлов для конкретного устройства и предоставьте команде bundletool build-apks
SDK, которые приложение зависит от. Эти SDK могут быть предоставлены в формате пакета SDK или в формате архива SDK.
Вы можете предоставить SDK в виде пакетов SDK, добавив флаг --sdk-bundles
следующим образом:
bundletool build-apks --bundle=app.aab --sdk-bundles=sdk1.asb,sdk2.asb \ --output=app.apks
Вы можете предоставить SDK в виде архивов SDK, добавив флаг --sdk-archives
следующим образом:
bundletool build-apks --bundle=app.aab --sdk-archives=sdk1.asar,sdk2.asar \ --output=app.apks
Создание APK-файлов из пакета приложений с зависимостью пакета SDK для устройств без поддержки библиотеки SDK.
Устройства до Android 13 не поддерживают установку библиотек SDK или их запуск во время выполнения SDK. Bundletool скрывает сложность обратной совместимости и генерирует несколько вариантов вашего набора APK из одного и того же пакета приложений, когда вы запускаете bundletool build-apks
с параметром --sdk-bundles
или --sdk-archives
. Несколько вариантов предназначены для устройств с разными возможностями:
- Существует вариант для более новых устройств, в котором SDK устанавливается как отдельный пакет от приложения, а APK-файлы приложения не содержат содержимого SDK.
- Существует один или несколько вариантов для старых устройств, в которых APK-файлы SDK добавляются в набор APK-файлов приложения в качестве дополнительных разделений APK. APK-файлы SDK принадлежат пакету приложения. В этом случае среда выполнения SDK эмулируется в среде выполнения приложения на устройстве.
Подобно тому, как вы создаете APK для пакетов приложений без зависимостей SDK, bundletool extract-apks
и bundletool install-apks
возвращают отфильтрованный набор APK из лучшего варианта для подключенного устройства или для предоставленной конфигурации устройства.
Для расширенных случаев использования, когда вас интересует только создание фрагментов APK из архива SDK для конкретного приложения для старых устройств, используйте команду bundletool build-sdk-apks-for-app
следующим образом:
bundletool build-sdk-apks-for-app --app-properties=app-properties.json \ --sdk-archive=sdk.asar --output=sdk.apks
Файл app-properties
должен содержать поля, описанные в файле runtime_enabled_sdk_config.proto
. Вот как выглядит файл app-properties
:
{
"package_name": "com.my.app",
"version_code": 1234,
"min_sdk_version": 21,
"resources_package_id": 0x7e
}
Команда bundletool build-sdk-apks-for-app
создает подмножество APK-файлов приложения, соответствующее содержимому SDK под именем пакета приложения. Вы можете комбинировать эти APK-файлы с другими APK-файлами, содержащими контент приложения. Например, если вы собираете их отдельно и постепенно и устанавливаете вместе на устройстве, которое не поддерживает среду выполнения SDK.
Сборка и тестирование пакета SDK (экспериментальный)
Вы можете использовать bundletool
для создания ASB и тестирования создания файлов, необходимых для установки и распространения.
Создайте пакет SDK
Вы можете создать свой ASB из командной строки и подписать его с помощью jarsigner .
Чтобы создать пакет SDK, выполните следующие действия:
Создайте манифест и ресурсы пакета SDK в формате прототипа, выполнив те же действия, что и для пакета приложения.
Упакуйте скомпилированный код и ресурсы вашего SDK в базовый ZIP-файл , как если бы вы использовали модуль приложения.
Создайте файл
SdkModulesConfig.pb.json
и файлSdkBundleConfig.pb.json
, соответствующий формату, описанному в спецификации Android SDK Bundle .Создайте свой ASB с помощью команды
bundletool build-sdk-bundle
следующим образом:
bundletool build-sdk-bundle --sdk-bundle-config=SdkBundleConfig.pb.json \ --sdk-modules-config=SdkModulesConfig.pb.json \ --modules=base.zip --output=sdk.asb
В следующей таблице более подробно описаны различные флаги и параметры, которые вы можете установить при использовании команды bundletool build-sdk-bundle
.
Флаг | Описание |
---|---|
--modules | (Обязательно) Файл модуля, из которого вы хотите создать окончательную версию ASB. |
--output | (Обязательно) Путь к месту, где вы хотите построить ASB. |
--sdk-modules-config | (Обязательно) Путь к файлу JSON, описывающему конфигурацию модулей SDK. Чтобы узнать, как форматировать файл JSON, см. раздел спецификации пакета Android SDK . |
--sdk-bundle-config | Путь к файлу JSON, описывающему конфигурацию пакета SDK. Чтобы узнать, как форматировать файл JSON, см. раздел спецификации пакета Android SDK . |
--metadata-file | Файл, в который нужно включить метаданные для ASB. Формат значения флага: <bundle-path>:<physical-file> , где <bundle-path> обозначает расположение файла внутри каталога метаданных пакета SDK, а <physical-file> — существующий файл, содержащий необработанные данные. храниться. Флаг можно повторять. |
--overwrite | Если этот параметр установлен, этот параметр перезаписывает любой предыдущий существующий вывод. |
Создание APK-файлов из пакета SDK
После сборки ASB вы можете протестировать пакет SDK локально, создав его APK-файлы с помощью команды bundletool build-sdk-apks
, как показано в следующем коде:
bundletool build-sdk-apks --sdk-bundle=sdk.asb --output=sdk.apks
Когда bundletool
создает APK-файлы из вашего пакета SDK, инструмент включает APKS в контейнер, называемый архивом набора APK , который использует расширение файла .apks
. bundletool
генерирует один автономный APK из пакета SDK, предназначенный для всех конфигураций устройств.
Если вы хотите развернуть ASB на устройстве, вам также необходимо включить информацию о подписи вашего приложения, как показано в следующей команде:
bundletool build-sdk-apks --sdk-bundle=sdk.asb --output=sdk.apks \ --ks=keystore.jks \ --ks-pass=file:/keystore.pwd \ --ks-key-alias=KeyAlias \ --key-pass=file:/key.pwd
В следующей таблице более подробно описаны различные флаги и параметры, которые вы можете установить при использовании команды bundletool build-sdk-apks
.
Флаг | Описание |
---|---|
--sdk-bundle | (Обязательно) Путь к пакету SDK. Должно иметь расширение .asb . |
--output | (Обязательно) По умолчанию это путь, по которому вы хотите создать архив набора APK. Альтернативно, если вы используете --output-format=DIRECTORY , это путь к каталогу, в котором вы хотите хранить сгенерированные APK. |
--ks | Путь к хранилищу ключей, которое вы хотите использовать для подписи созданных APK. |
--ks-key-alias | Псевдоним ключа, который будет использоваться в хранилище ключей для подписи созданных APK. |
--key-pass | Пароль ключа в хранилище ключей, который будет использоваться для подписи созданных APK. Если вы передаете пароль в виде открытого текста, вы должны поставить перед значением префикс Если этот флаг не установлен, используется пароль хранилища ключей. Если это не удается, терминал командной строки запросит пароль. |
--ks-pass | Пароль хранилища ключей, который будет использоваться для подписи сгенерированных APK. Если вы передаете пароль в виде открытого текста, вы должны поставить перед значением префикс Если этот флаг не установлен, терминал командной строки запросит пароль. |
--aapt2 | Путь к используемому двоичному файлу AAPT2. |
--output-format | Выходной формат для созданных APK. По умолчанию для этого параметра установлено значение APK_SET , что позволяет выводить APK в создаваемый архив набора APK. Если установлено значение DIRECTORY , APK выводятся в каталог, указанный --output . |
--verbose | Если этот параметр установлен, эта опция выводит дополнительную информацию о выполнении команды в стандартный вывод. |
--version-code | Код версии SDK. Это код версии, используемый платформой Android для установки APK, а не версии SDK. Для этой опции можно установить произвольное значение. Если не установлено, по умолчанию оно равно 0. |
--overwrite | Если этот параметр установлен, этот параметр перезаписывает любой предыдущий существующий вывод. |
Развертывание, извлечение и измерение размера APK-файлов SDK.
Вы можете выполнить те же действия, что и для приложений, для развертывания APK-файлов на подключенном устройстве , извлечения APK-файлов для конкретного устройства из существующего набора APK и измерения предполагаемого размера загрузки APK-файлов в наборе APK .
Создайте архив SDK из пакета SDK.
После загрузки ASB в канал распространения, например в Google Play, ASB преобразуется в архив Android SDK ( .asar
) для распространения разработчикам приложений через Maven. Подробнее о формате см. в разделе «Спецификация формата архива SDK» .
После сборки ASB вы можете протестировать создание архива Android SDK локально с помощью команды bundletool build-sdk-asar
, как показано в следующем коде:
bundletool build-sdk-asar --sdk-bundle=sdk.asb --output=sdk.asar \ --apk-signing-key-certificate=keycert.txt
В следующей таблице более подробно описаны различные флаги и параметры, которые вы можете установить при использовании команды bundletool build-sdk-asar
.
Флаг | Описание |
---|---|
--apk-signing-key-certificate | (Обязательно) Путь к сертификату подписи APK SDK. Это сертификат, соответствующий ключу, который вы использовали для подписи APK-файлов в команде build-sdk-apks . |
--output | (Обязательно) Путь, по которому вы хотите создать файл .asar . |
--sdk-bundle | (Обязательно) Путь к пакету SDK. Должно иметь расширение .asb . |
--overwrite | Если этот параметр установлен, этот параметр перезаписывает любой предыдущий существующий вывод. |
Форматы SDK с поддержкой среды выполнения (экспериментальные)
SDK с поддержкой среды выполнения представляют два формата файлов Android:
- Пакет Android SDK (
.asb
), используемый для публикации SDK с поддержкой среды выполнения в магазинах приложений. - Архив Android SDK (
.asar
), используемый для распространения SDK с поддержкой среды выполнения на Maven.
Формат пакета Android SDK
Пакет SDK — это формат публикации для SDK с поддержкой среды выполнения. Он содержит весь код и ресурсы SDK, включая код всех библиотек, от которых зависит SDK. Он не включает код и ресурсы других SDK с поддержкой среды выполнения, от которых зависит этот SDK.
Пакет Android SDK (ASB) — это подписанный zip-файл с расширением .asb
. Код и ресурсы SDK организованы в нем так же, как в APK. ASB также содержит несколько файлов конфигурации, которые помогают создавать устанавливаемые APK.
В следующем списке более подробно описаны некоторые файлы ASB:
SdkBundleConfig.pb
: файл конфигурации в формате прототипа, содержащий список SDK с поддержкой среды выполнения, от которых зависит ваш SDK. Полное определение см. в файлеsdk_bundle_config.proto
.modules.resm
: ZIP-файл, содержащий все данные, необходимые для создания APK из SDK.SdkModulesConfig.pb
: файл конфигурации в формате прототипа. Этот файл содержит имя SDK, версию и имя класса точки входа SDK для платформы (SandboxedSdkProvider
). Полное определение см. в файлеsdk_modules_config.proto
.base/
: отдельный модуль, содержащий код и ресурсы SDK.-
manifest/
: манифест SDK в формате прототипа. -
dex/
: скомпилированный код в формате DEX. Можно предоставить несколько файлов DEX. -
res/
,lib/
,assets/
: эти каталоги идентичны папкам в типичном APK. Пути в этих каталогах сохраняются при создании APK-файлов SDK. -
root/
: в этом каталоге хранятся файлы, которые позже перемещаются в корень APK-файлов SDK. Например, он может включать ресурсы на основе Java, которые ваш SDK загружает с помощью методаClass.getResource()
. Пути внутри этого каталога также сохраняются.
-
BUNDLE-METADATA
: этот каталог содержит файлы метаданных, содержащие информацию, полезную для инструментов или магазинов приложений. Такие файлы метаданных могут включать сопоставления ProGuard и полный список файлов DEX вашего SDK. Файлы в этом каталоге не входят в APK-файлы вашего SDK.
Формат архива Android SDK
Архив Android SDK — это формат распространения SDK с поддержкой среды выполнения на Maven. Это zip-файл с расширением .asar
. Файл содержит всю информацию, необходимую инструментам сборки приложений для создания пакета Android App Bundle, который зависит от вашего SDK с поддержкой среды выполнения.
В следующем списке более подробно описаны некоторые файлы архива Android SDK:
SdkMetadata.pb
: файл конфигурации в формате прототипа, содержащий имя SDK, версию и дайджест сертификата для ключа, используемого для подписи APK-файлов, созданных для этого SDK. Полное определение см. в файлеsdk_metadata.proto
.modules.resm
: ZIP-файл, содержащий все данные, необходимые для создания APK из SDK. Это то же самое, что и файл.resm
в Android SDK Bundle .AndroidManifest.xml
: файл манифеста SDK в текстовом формате XML.
Дополнительные ресурсы
Чтобы узнать больше об использовании bundletool
, посмотрите App Bundles: тестирование пакетов с помощью Bundletool и Play Console .