В этом руководстве рассказывается, как распространять наборы Android App Bundle (AAB) среди тестировщиков с помощью интерфейса командной строки Firebase. Инструмент CLI позволяет указать тестировщиков и примечания к выпуску для сборки, а затем распространить ее соответствующим образом.
App Distribution интегрируется с сервисом внутреннего доступа к приложениям Google Play, чтобы обрабатывать загруженные вами AAB и предоставлять APK, оптимизированные для конфигурации устройств тестировщиков. Распространение наборов AAB позволяет:
Запускать оптимизированные APK-файлы (предоставляемые Google Play), которые оптимизированы для устройств тестировщиков.
Выявляйте и устраняйте проблемы, связанные с определенными устройствами.
Тестируйте функции наборов App Bundle, например Play Feature Delivery и Play Asset Delivery.
Уменьшите размер скачиваемых файлов для тестировщиков.
Требуемые права доступа
Чтобы загружать наборы AAB в App Distribution, необходимо связать приложение Firebase с приложением в Google Play. Для выполнения этих действий у вас должен быть необходимый уровень доступа.
Если у вас нет нужного уровня доступа, попросите владельца проекта Firebase назначить вам подходящую роль в настройках IAM консоли Firebase. Если у вас есть вопросы о доступе к проекту Firebase, в том числе о том, как найти или назначить владельца, ознакомьтесь с часто задаваемыми вопросами о разрешениях и доступе к проектам Firebase.
В таблице ниже указано, какие разрешения нужны, чтобы связать приложение Firebase с приложением в Google Play и загружать наборы AAB.
| Действие в консоли Firebase | Необходимое разрешение IAM | Роли IAM, которые по умолчанию включают необходимые разрешения | Дополнительные роли |
|---|---|---|---|
| Как связать приложение Firebase с приложением в Google Play | firebase.playLinks.update
|
Одна из следующих ролей: | Доступ к аккаунту разработчика Google Play с правами администратора. |
| Загрузите наборы App Bundle в App Distribution | firebaseappdistro.releases.update
|
Одна из следующих ролей: | –– |
Подготовка
Если вы ещё этого не сделали, добавьте Firebase в проект Android. В результате в вашем проекте Firebase появится приложение Firebase для Android.
Если вы не используете другие продукты Firebase, вам нужно только создать проект и зарегистрировать приложение. Если вы решите использовать дополнительные продукты, обязательно выполните все действия, описанные в статье Добавление Firebase в проект для Android.
Откройте страницу App Distribution в консоли Firebase. Выберите проект Firebase, затем выберите приложение в переключателе приложений и нажмите Начать.
Связать приложение Firebase с аккаунтом Google Play и загружать наборы AAB можно, если выполняются следующие условия:
Приложение в Google Play и приложение для Android в Firebase регистрируются с использованием одного и того же названия пакета.
Приложение в Google Play должно быть настроено на панели управления и выпущено в виде версии для внутреннего, закрытого или открытого тестирования либо рабочей версии.
Приложение должно пройти проверку в Google Play и быть опубликовано, то есть в столбце Статус приложения должен отображаться статус "Внутреннее тестирование" (не "Проект"), "Закрытое тестирование", "Открытое тестирование" или "Рабочая версия".
Свяжите приложение Android в Firebase с аккаунтом разработчика Google Play.
В консоли Firebase перейдите в раздел
Настройки проекта и откройте вкладку Интеграции.На карточке Google Play нажмите Связать.
Если ранее вы уже связывали приложения с Google Play, нажмите Настройки.Следуйте инструкциям на экране, чтобы включить интеграцию с App Distribution и выбрать приложения Firebase, которые нужно связать с Google Play.
Подробнее о связывании с Google Play…
1. Создайте приложение
Когда вы будете готовы распространить предварительную версию приложения среди тестировщиков, создайте набор Android App Bundle (инструкции можно найти в документации Android Studio).
Шаг 2. Как распространить приложение среди тестировщиков
Чтобы распространить приложение среди тестировщиков, загрузите его файл с помощью интерфейса командной строки Firebase:
- Установите или обновите до последней версии Firebase CLI (рекомендуем скачать автономный двоичный файл для CLI, соответствующий вашей ОС). Войдите в аккаунт и убедитесь, что у вас есть доступ к проектам.
-
Выполните команду
appdistribution:distribute, чтобы загрузить приложение и распространить его среди тестировщиков. Для настройки распределения используйте следующие параметры:appdistribution:distribute options --appОбязательно. Идентификатор приложения Firebase. Идентификатор приложения можно найти в консоли Firebase на странице Общие настройки.
--app 1:1234567890:android:0a1b2c3d4e5f67890
--tokenТокен обновления, который выводится при аутентификации среды непрерывной интеграции с помощью интерфейса командной строки Firebase. Подробнее о том, как использовать интерфейс командной строки с системами непрерывной интеграции …
--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Название ресурса для поля имени пользователя, которое будет использоваться для автоматического входа во время тестов агента тестирования приложений.
--test-password-resourceНазвание ресурса для поля пароля, которое будет использоваться для автоматического входа во время тестов агента тестирования приложений.
--test-non-blockingЕсли этот флаг установлен при запуске тестов агента тестирования приложений, команда запустит тесты и сразу же вернет управление, не дожидаясь их завершения. Чтобы посмотреть результаты тестирования, перейдите в консоль Firebase. Если этот флаг не установлен, команда будет заблокирована до завершения тестов и завершится с кодом ошибки, если какой-либо из тестов не пройден.
--results-bucketСпециальный сегмент Google Cloud Storage (GCS), в котором хранятся результаты тестирования. Если оставить поле пустым, будет использоваться сегмент по умолчанию. Сегмент должен принадлежать проекту, для которого включены платежные функции. При указании сегмента взимается плата за использование хранилища.
Пример:
firebase appdistribution:distribute test.aab \ --app 1:1234567890:android:0a1b2c3d4e5f67890 \ --release-notes "Bug fixes and improvements" --testers-file testers.txtПосле загрузки выпуска интерфейс командной строки Firebase выведет следующие ссылки: Эти ссылки помогают управлять исполняемыми файлами и гарантируют, что тестировщики и другие разработчики получат нужную версию.
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.Если у вас много тестировщиков, рекомендуем использовать группы. Вы можете создавать и удалять группы в проекте Firebase с помощью
appdistribution:group:createиappdistribution:group:delete.Используйте
--group-alias, чтобы указать группу для командappdistribution:testers:addиappdistribution:testers:remove.Пример:
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 дней, чтобы принять приглашение. За пять дней до истечения срока действия приглашения в консоли Firebase рядом с именем тестировщика появляется уведомление. Чтобы продлить приглашение, отправьте его повторно, используя раскрывающееся меню в строке тестировщика.
Дальнейшие действия
Добавьте в приложение форму обратной связи, чтобы тестировщики могли отправлять вам отзывы и скриншоты.
Узнайте, как показывать тестировщикам оповещения в приложении, когда доступны новые сборки.
Ознакомьтесь с рекомендациями по распространению приложений Android среди тестировщиков с помощью CI/CD.