В этом руководстве описывается, как распространять APK-файлы среди тестировщиков с помощью Firebase CLI. Этот инструмент позволяет указать тестировщиков и примечания к выпуску для сборки, а затем распространять сборку соответствующим образом.
Прежде чем начать
Если вы еще этого не сделали, добавьте Firebase в свой Android-проект .
Если вы не используете другие продукты Firebase, вам достаточно создать проект и зарегистрировать приложение. Однако, если вы решите использовать другие продукты в будущем, обязательно выполните все шаги на странице, ссылка на которую указана выше.
Шаг 1. Создайте свое приложение
Когда вы будете готовы распространить предварительную версию приложения среди тестировщиков, соберите APK-файл, используя стандартный процесс. Вам необходимо подписать APK-файл с помощью отладочного ключа или ключа подписи приложения.
Шаг 2. Распространите свое приложение среди тестировщиков
Чтобы распространить приложение среди тестировщиков, загрузите файл приложения с помощью Firebase CLI:
- Установите или обновите Firebase CLI до последней версии (рекомендуем загрузить отдельный исполняемый файл CLI для вашей ОС). Убедитесь, что вы вошли в систему и проверили доступ к своим проектам.
- Выполните команду - appdistribution:distribute, чтобы загрузить приложение и распространить его среди тестировщиков. Используйте следующие параметры для настройки распространения:- appdistribution:параметры распространения - --app- Обязательно : идентификатор приложения Firebase. Идентификатор приложения можно найти в консоли Firebase на странице «Общие настройки» . - --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;model=b0q,version=33,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. - Например: - firebase appdistribution:distribute test.apk \ --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.com- firebase appdistribution:testers:remove anothertester@email.com moretesters@email.com- Адреса электронной почты тестировщиков должны быть разделены пробелом. Вы также можете указать тестировщиков с помощью - --file /path/to/testers.txt.- Если у вас большое количество тестировщиков, вам следует рассмотреть возможность использования групп: вы можете использовать - appdistribution:group:createи- appdistribution:group:deleteдля создания или удаления групп в вашем проекте Firebase.- Используйте - --group-alias, чтобы указать группу для- appdistribution:testers:addи- appdistribution:testers:remove.- Например: - firebase appdistribution:group:create "QA team" qa-team- firebase appdistribution:testers:add --group-alias=qa-team anothertester@email.com moretesters@email.com- firebase appdistribution:testers:remove --group-alias=qa-team anothertester@email.com moretesters@email.com- firebase appdistribution:group:delete qa-team
-  
После распространения ваша сборка станет доступна на панели App Distribution консоли Firebase в течение 150 дней (пяти месяцев). Когда до истечения срока действия сборки останется 30 дней, уведомление об истечении срока действия появится как в консоли, так и в списке сборок тестировщика на его тестовом устройстве.
Тестировщики, которые ещё не были приглашены к тестированию приложения, получают по электронной почте приглашения для начала работы, а существующие тестировщики получают по электронной почте уведомления о готовности новой сборки к тестированию (инструкции по установке тестового приложения см. в руководстве по настройке тестировщика ). Вы можете отслеживать статус каждого тестировщика (принято ли приглашение и скачано ли приложение) в консоли Firebase .
У тестировщиков есть 30 дней, чтобы принять приглашение на тестирование приложения, прежде чем срок его действия истечёт. Когда до истечения срока действия приглашения остаётся 5 дней, в консоли Firebase рядом с именем тестировщика в релизе появляется уведомление об истечении срока действия. Приглашение можно продлить, отправив его повторно с помощью раскрывающегося меню в строке тестировщика.
Следующие шаги
- Реализуйте обратную связь в приложении , чтобы тестировщикам было проще отправлять отзывы о вашем приложении (включая снимки экрана). 
- Узнайте, как отображать внутри приложения оповещения для тестировщиков о том, что новые сборки вашего приложения доступны для установки. 
- Изучите передовой опыт распространения приложений Android среди тестировщиков QA с использованием CI/CD .