This guide describes how to distribute Android App Bundles (AABs) to testers using the Firebase CLI. The CLI tool lets you specify testers and release notes for a build, then distributes the build accordingly.
App Distribution integrates with Google Play 's internal app sharing service to process the AABs you upload and serve APKs that are optimized for your testers' device configurations. Distributing AABs lets you do the following:
Run optimized APKs (served by Google Play) that are optimized to your testers' devices.
Выявление и устранение проблем, специфичных для конкретного устройства.
Test app bundle features like Play Feature Delivery and Play Asset Delivery .
Уменьшите размер загружаемых файлов для ваших тестировщиков.
Необходимые разрешения
To upload AABs to App Distribution , you must link your Firebase app to an app in Google Play . You must have the required level of access to perform these actions.
If you don't have the necessary Firebase access, you can ask a Firebase project Owner to assign you the applicable role via the Firebase console IAM settings . If you have questions about accessing your Firebase project, including finding or assigning an Owner, review the "Permissions and access to Firebase projects" FAQs .
The following table applies to linking a Firebase app to an app in Google Play , as well as uploading AABs.
| Действие в консоли Firebase | Требуются разрешения IAM. | IAM role(s) that include required permissions by default | Дополнительные необходимые роли |
|---|---|---|---|
| Свяжите приложение Firebase с приложением в Google Play | firebase.playLinks.update | Одна из следующих ролей: | Access to a Google Play developer account as Admin |
| Загрузите AAB в App Distribution | firebaseappdistro.releases.update | Одна из следующих ролей: | –– |
Прежде чем начать
If you haven't already, add Firebase to your Android project . At the end of this workflow, you'll have a Firebase Android App in your Firebase project.
If you aren't using any other Firebase products, you only need to create a project and register your app. If you decide to use additional products, be sure to complete all of the steps in Add Firebase to your Android project .
To create a Firebase link to Google Play and to upload AABs, make sure that your app meets the following requirements:
The app in Google Play and the Firebase Android app are both registered using the same package name.
The app in Google Play is set up on the app dashboard and is distributed to one of the Google Play tracks (Internal testing, Closed testing, Open testing, or Production).
The app's review in Google Play is complete and the app is published. Your app is published if the App status column displays one of the following statuses: Internal testing (not Draft internal testing), Closed testing, Open testing, or Production.
Свяжите ваше Android-приложение Firebase с вашей учетной записью разработчика Google Play:
В консоли Firebase перейдите в свой
настройках проекта выберите вкладку «Интеграции» . На карточке Google Play нажмите «Ссылка» .
If you already have links to Google Play, click Manage instead.Следуйте инструкциям на экране, чтобы включить интеграцию App Distribution и выбрать, какие приложения Firebase для Android следует связать с Google Play.
Узнайте больше о создании ссылок на Google Play .
Шаг 1. Создайте свое приложение.
Когда вы будете готовы распространить предварительную версию своего приложения среди тестировщиков, соберите AAB (инструкции см. в документации Android Studio ).
Шаг 2. Распространите ваше приложение среди тестировщиков.
Чтобы распространить ваше приложение среди тестировщиков, загрузите файл приложения с помощью Firebase CLI:
- Установите или обновите Firebase CLI до последней версии (рекомендуется загрузить автономный исполняемый файл CLI, соответствующий вашей операционной системе). Убедитесь, что вы вошли в систему и проверили доступ к своим проектам.
Выполните команду
appdistribution:distribute, чтобы загрузить ваше приложение и распространить его среди тестировщиков. Используйте следующие параметры для настройки распространения:appdistribution:distribute options --appRequired : Your app's Firebase App ID. You can find the App ID in the Firebase console, on the General Settings page .
--app 1:1234567890:android:0a1b2c3d4e5f67890
--tokenТокен обновления, который выводится при аутентификации вашей среды CI с помощью Firebase CLI (подробнее см. в разделе «Использование CLI с системами CI» ).
--token "$FIREBASE_TOKEN"
--release-notes
--release-notes-fileПримечания к выпуску этой сборки.
Вы можете указать примечания к выпуску напрямую:
--release-notes "Text of release notes"
Или укажите путь к текстовому файлу:
--release-notes-file "/path/to/release-notes.txt"
--testers
--testers-fileАдреса электронной почты тестировщиков, которых вы хотите пригласить.
Вы можете указать тестировщиков в виде списка адресов электронной почты, разделенных запятыми:
--testers "ali@example.com, bri@example.com, cal@example.com"
Или же вы можете указать путь к текстовому файлу, содержащему список адресов электронной почты, разделенных запятыми:
--testers-file "/path/to/testers.txt"
--groups
--groups-fileГруппы тестировщиков, которые вы хотите пригласить (см. раздел «Управление тестировщиками »). Группы указываются с помощью...
псевдонимы групп , которую вы можете найти в консоли Firebase .Группы можно указать в виде списка, разделенного запятыми:
--groups "qa-team, trusted-testers"
Или же вы можете указать путь к текстовому файлу, содержащему список имен групп, разделенных запятыми:
--groups-file "/path/to/groups.txt"
--debugФлаг, который можно указать для вывода подробного лога.
--test-devices
--test-devices-fileТестовые устройства, на которых вы хотите запустить тесты агента тестирования приложений .
Список тестовых устройств можно указать в виде перечня характеристик, разделенных точкой с запятой:
--test-devices: "model=shiba,version=34,locale=en,orientation=portrait"
Или же вы можете указать путь к текстовому файлу, содержащему список тестовых устройств, разделенных точкой с запятой:
--test-devices-file: "/path/to/test-devices.txt"
--test-usernameИмя пользователя для автоматического входа в систему, используемое во время тестирования агентом приложения .
--test-password
--test-password-fileПароль для автоматического входа в систему, используемый во время тестирования агентом приложения .
Или же вы можете указать путь к текстовому файлу, содержащему пароль:
--test-password-file: "/path/to/test-password.txt"
--test-username-resourceИмя ресурса для поля имени пользователя, используемого для автоматического входа в систему во время тестирования агентом App Testing.
--test-password-resourceResource name for the password field for automatic login to be used during App Testing agent tests.
--test-non-blockingЕсли этот флаг установлен при запуске тестов агента App Testing , команда запустит тесты и немедленно вернет управление, не дожидаясь их завершения. Чтобы просмотреть результаты тестов, перейдите в консоль Firebase. Если этот флаг не установлен, команда будет блокироваться до завершения тестов и завершится с кодом ошибки, если какой-либо из тестов завершится неудачей.
Например:
firebase appdistribution:distribute test.aab \ --app 1:1234567890:android:0a1b2c3d4e5f67890 \ --release-notes "Bug fixes and improvements" --testers-file testers.txtПосле загрузки релиза Firebase CLI выводит следующие ссылки. Эти ссылки помогают управлять бинарными файлами и гарантируют, что тестировщики и другие разработчики получат правильную версию релиза:
-
firebase_console_uri— ссылка на консоль Firebase , отображающую отдельный релиз. Вы можете поделиться этой ссылкой с другими разработчиками в вашей организации. -
testing_uri— ссылка на релиз в среде тестирования (нативное приложение Android), позволяющая тестировщикам просматривать примечания к релизу и устанавливать приложение на свое устройство. Для использования ссылки тестировщику необходим доступ к релизу. -
binary_download_uri— подписанная ссылка, которая напрямую загружает и устанавливает исполняемый файл приложения (APK или AAB). Ссылка действительна в течение одного часа.
Управление тестировщиками и группами.
Помимо распространения релизов, вы также можете использовать
appdistribution:testers:addиappdistribution:testers:removeдля приглашения новых тестировщиков или удаления существующих из вашего проекта Firebase.После добавления тестировщика в ваш проект Firebase вы можете добавлять его в отдельные релизы. После удаления тестировщика он больше не будет иметь доступа к релизам в вашем проекте. Обратите внимание, что тестировщики, недавно удаленные из проекта, могут сохранять доступ к вашим релизам в течение определенного периода времени.
Например:
firebase appdistribution:testers:add anothertester@email.com moretesters@email.comfirebase appdistribution:testers:remove anothertester@email.com moretesters@email.comАдреса электронной почты тестировщиков должны быть разделены пробелом. Вы также можете указать тестировщиков с помощью
--file /path/to/testers.txt.Если у вас большое количество тестировщиков, вам следует рассмотреть возможность использования групп: вы можете использовать
appdistribution:group:createиappdistribution:group:deleteдля создания или удаления групп в вашем проекте Firebase.Use
--group-aliasto specify a group for theappdistribution:testers:addandappdistribution:testers:removecommands.Например:
firebase appdistribution:group:create "QA team" qa-teamfirebase appdistribution:testers:add --group-alias=qa-team anothertester@email.com moretesters@email.comfirebase appdistribution:testers:remove --group-alias=qa-team anothertester@email.com moretesters@email.comfirebase appdistribution:group:delete qa-team-
После распространения вашей сборки она становится доступной на панели App Distribution в консоли Firebase в течение 150 дней (пяти месяцев). Когда до истечения срока действия сборки останется 30 дней, уведомление об истечении срока действия появится как в консоли, так и в списке сборок вашего тестировщика на его тестовом устройстве.
Тестировщики, не получившие приглашение к тестированию приложения, получают приглашения по электронной почте для начала работы, а существующие тестировщики получают уведомления по электронной почте о готовности новой сборки к тестированию (инструкции по установке тестового приложения см. в руководстве по настройке тестировщика ). Вы можете отслеживать статус каждого тестировщика — принял ли он приглашение и скачал ли приложение — в консоли Firebase .
У тестировщиков есть 30 дней, чтобы принять приглашение на тестирование приложения, после чего оно истекает. За 5 дней до истечения срока действия приглашения в консоли Firebase рядом с именем тестировщика в релизе появляется уведомление об истечении срока действия. Приглашение можно продлить, отправив его повторно с помощью выпадающего меню в строке с именем тестировщика.
Следующие шаги
Implement in-app feedback to make it easy for testers to send feedback about your app (including screenshots).
Learn how to display in-app alerts to your testers when new builds of your app are available to install.
Learn best practices for distributing Android apps to QA testers using CI/CD .