1. Обзор


Добро пожаловать в практическое занятие по интеграции SDK Firebase App Distribution в ваше Android-приложение. В этом занятии вы добавите SDK App Distribution для Android в ваше приложение, чтобы отображать внутриигровые оповещения для ваших тестировщиков о появлении новых сборок для загрузки. Вы узнаете, как использовать как базовую, так и пользовательскую конфигурацию, чтобы ваши тестировщики авторизовались для получения обновлений. Затем вы отправите новый релиз в App Distribution и запустите оповещение о новой сборке прямо в приложении.
Что вы узнаете
- Как использовать App Distribution для распространения предварительной версии приложения среди тестировщиков
- Как интегрировать Android SDK для распространения приложений в ваше приложение
- Как оповестить тестировщика о появлении новой предварительной сборки, готовой к установке?
- Как настроить SDK под ваши потребности в тестировании
Что вам понадобится
- Последняя версия Android Studio .
- Пример кода.
- Тестовое устройство с Android 4.4+ и Google Play Services 9.8 или более поздней версии, либо эмулятор с Google Play Services 9.8 или более поздней версии.
- Если используется устройство, потребуется соединительный кабель.
Как вы будете использовать этот учебный материал?
Как бы вы оценили свой опыт разработки приложений для Android?
2. Получите пример кода.
Клонируйте репозиторий GitHub из командной строки.
$ git clone https://github.com/FirebaseExtended/codelab-appdistribution-android.git
Если у вас не установлен Git, вы также можете загрузить пример проекта с его страницы на GitHub или перейдя по этой ссылке .
3. Импортируйте стартовое приложение.
В Android Studio выберите каталог codelab-appdistribution-android/start (
) из загруженного примера кода ( Файл > Открыть > .../codelab-appdistribution-android/start).
Теперь в Android Studio должен быть открыт стартовый проект.
4. Создайте и настройте проект Firebase.
Создайте новый проект Firebase.
- Войдите в консоль Firebase, используя свою учетную запись Google.
- Нажмите кнопку, чтобы создать новый проект, а затем введите название проекта (например,
App Distribution Codelab). - Нажмите «Продолжить» .
- Если появится запрос, ознакомьтесь с условиями использования Firebase и примите их, после чего нажмите «Продолжить» .
- (Необязательно) Включите помощь ИИ в консоли Firebase (в Firebase она называется "Gemini").
- Для этого практического занятия вам не понадобится Google Analytics, поэтому отключите эту опцию.
- Нажмите «Создать проект» , дождитесь завершения подготовки проекта, а затем нажмите «Продолжить» .
Добавить приложение в Firebase
Зарегистрируйте свое приложение в Firebase . Используйте "com.google.firebase.appdistributioncodelab" в качестве имени пакета.
Добавьте файл google-services.json в ваше приложение.
После добавления имени пакета и выбора пункта «Зарегистрировать» выполните следующие действия, чтобы добавить файл google-services.json в ваше приложение:
- Нажмите «Скачать google-services.json» , чтобы получить файл конфигурации Firebase для Android.
- Скопируйте файл google-services.json в каталог
appвашего проекта. - После загрузки файла вы можете пропустить следующие шаги, отображаемые в консоли (они уже выполнены за вас в проекте build-android-start).
Обновите идентификатор приложения, чтобы он соответствовал вашему приложению Firebase.
- В левом меню (вкладка «Проект») убедитесь, что вы находитесь в разделе «Android», найдите вкладку «Gradle Scripts» и откройте файл Gradle для вашего модуля (уровня приложения) (обычно
app/build.gradle.kts). - Измените свойство
applicationIdтак, чтобы оно соответствовало идентификатору приложения Firebase. Правильный идентификатор должен быть "com.google.firebase.appdistributioncodelab".
Синхронизируйте свой проект с файлами Gradle.
Чтобы убедиться, что все зависимости доступны вашему приложению, синхронизируйте проект с файлами Gradle, выбрав File > Sync Project with Gradle Files на панели инструментов Android Studio.
5. Настройте внутриприложениевые оповещения о новых сборках с помощью Android SDK для распространения приложений.
На этом шаге вы добавите Android SDK Firebase App Distribution в свое приложение и будете отображать внутриигровые оповещения для тестировщиков о появлении новых сборок вашего приложения для установки. Для этого убедитесь, что вы включили API Firebase App Testers для своего проекта "Firebase Codelab" (в консоли Google Cloud). Вам необходимо войти в систему с той же учетной записью и выбрать правильный проект из выпадающего меню вверху.
Настройте внутриприложные оповещения
Android SDK App Distribution предоставляет два способа настройки оповещений о ходе сборки для ваших тестировщиков:
- Базовая конфигурация оповещений, включающая в себя предварительно созданное диалоговое окно для отображения тестировщикам.
- Расширенные настройки оповещений, позволяющие персонализировать пользовательский интерфейс (UI).
Начнём с базовой настройки оповещений. Вы можете использовать updateIfNewReleaseAvailable , чтобы отобразить предварительно созданное диалоговое окно включения оповещений для тестировщиков, которые ещё не включили оповещения, а затем проверить, доступна ли новая сборка. Тестировщики включают оповещения, войдя в учетную запись, имеющую доступ к приложению в App Distribution. При вызове метода выполняется следующая последовательность действий:
- Проверяет, включил ли тестировщик оповещения. Если нет, метод отображает предварительно созданное диалоговое окно, предлагающее тестировщикам войти в App Distribution с помощью своей учетной записи Google.
Включение оповещений — это одноразовая процедура на тестовом устройстве, которая сохраняется после обновлений вашего приложения. Оповещения остаются включенными на тестовом устройстве до тех пор, пока приложение не будет удалено или пока не будет вызван метод signOutTester .
- Проверяет наличие новых доступных сборок для установки тестировщиком.
- Отображает предварительно настроенное оповещение, предлагающее тестировщику загрузить последнюю версию.
- Перед продолжением обновления проверяется новый тип сборки:
- Если новая сборка представляет собой пакет приложений (AAB), тестировщик будет перенаправлен в Play Store для завершения процесса обновления.
- Если новая сборка представляет собой APK-файл, SDK загружает её в фоновом режиме и предлагает тестировщику установить новую сборку после завершения загрузки. SDK отправляет пользователю уведомления о ходе загрузки с помощью
NotificationManager.Вы можете добавить собственный индикатор прогресса, прикрепив обработчикonProgressUpdateк задачеupdateIfNewReleaseAvailable.
Вы можете вызвать updateIfNewReleaseAvailable() в любой момент работы приложения. Например, вы можете вызвать updateIfNewReleaseAvailable() во время выполнения метода onResume() в MainActivity:
Откройте файл MainActivity.kt и создайте метод onResume() следующим образом:
MainActivity.kt
override fun onResume() {
super.onResume()
checkForUpdate()
}
Теперь давайте реализуем метод checkForUpdate() .
MainActivity.kt
private fun checkForUpdate() {
firebaseAppDistribution.updateIfNewReleaseAvailable()
.addOnProgressListener { updateProgress ->
// (Optional) Implement custom progress updates in addition to
// automatic NotificationManager updates.
}
.addOnFailureListener { e ->
if (e is FirebaseAppDistributionException) {
// Handle exception.
}
}
}
6. Создайте приложение и пригласите тестировщиков его загрузить.
На этом этапе вы собираете приложение и тестируете его, рассылая собранную версию тестировщикам с помощью консоли Firebase.
Создайте своё приложение
Когда вы будете готовы распространить предварительную версию своего приложения среди тестировщиков, соберите APK-файл, используя обычный процесс. Вам необходимо подписать APK-файл с помощью ключа отладки или ключа подписи приложения.
Распространите ваше приложение среди тестировщиков.
Чтобы распространить ваше приложение среди тестировщиков, загрузите APK-файл с помощью консоли Firebase:
- Откройте страницу «Распространение приложений» в консоли Firebase. При появлении запроса выберите свой проект Firebase.
- На странице «Релизы» выберите из выпадающего меню приложение, которое хотите распространить.

- Нажмите « Начать»

- Перетащите APK-файл вашего приложения в консоль, чтобы загрузить его.
- После завершения загрузки укажите группы тестировщиков и отдельных тестировщиков, которым вы хотите отправить сборку. (Добавьте свой адрес электронной почты, чтобы получить приглашение.) Затем добавьте примечания к выпуску сборки. Подробнее о создании групп тестировщиков см. в разделе «Добавление и удаление тестировщиков» .

- Нажмите «Распространить» , чтобы сделать сборку доступной для тестировщиков.

В консоли Firebase теперь можно увидеть тестировщиков, добавленных вами в релиз вашего приложения.

Поскольку вы указали свой адрес электронной почты, вы получите письмо от Firebase App Distribution с приглашением протестировать приложение. Теперь вы первый тестировщик! Следуйте инструкциям в разделе «Принять приглашение», чтобы зарегистрироваться в качестве тестировщика на вашем тестовом устройстве.
Примите приглашение
Для загрузки и тестирования релиза вам сначала нужно будет принять приглашение.
- На тестовом устройстве Android откройте электронное письмо, отправленное от Firebase App Distribution, и нажмите «Начать» .
- В появившемся веб-приложении Firebase App Distribution Tester войдите в систему с помощью своей учетной записи Google и нажмите «Принять приглашение». Теперь вы можете увидеть релиз, к тестированию которого вас пригласили.

Загрузите релиз с тестового устройства.
Перейдя в приложение AppDistribution codelab, вы увидите, что релиз готов к загрузке.

- Нажмите «Скачать» , затем установите и запустите приложение!
- При запуске приложение предложит включить уведомления о новых сборках. Нажмите « Включить» .

- Войдите в систему, используя свою учетную запись тестировщика.

Вы возвращаетесь в приложение. При следующем запуске приложения вам не нужно будет входить в систему или принимать уведомления.

Распространите обновление среди ваших тестировщиков.
- В файле Gradle вашего модуля (уровня приложения) (обычно app/build.gradle) измените versionName на "1.1", а versionCode на 2.
- Создайте APK-файл, используя стандартный процесс. Необходимо подписать APK-файл с помощью ключа отладки или ключа подписи приложения.
- Загрузите этот новый APK-файл в консоль Firebase, снова добавьте свой адрес электронной почты в качестве тестировщика и нажмите «Распространить» .

Оповещения о сборке теста
- Убедитесь, что вы закрыли приложение, если оно было открыто.
- Перезапустите приложение.
- При перезапуске приложения вы получите уведомление о доступности новой версии.

- Чтобы получить последнюю версию, нажмите «Обновить» .
- При появлении запроса выберите опцию, разрешающую установку из неизвестных источников.
- На следующем экране нажмите «Установить» (или «Обновить »).

- Поздравляем! Вам удалось обновить приложение, добавив встроенные оповещения.
7. Настройка входа в систему для тестировщиков.
Методы signInTester/signOutTester и isTesterSignedIn предоставляют вам больше гибкости в настройке процесса входа в систему для тестировщика, чтобы он лучше соответствовал внешнему виду и функциональности вашего приложения.
В следующем примере проверяется, вошел ли тестировщик уже в свою учетную запись тестировщика Firebase App Distribution, поэтому вы можете отображать интерфейс входа в систему только для тестировщиков, которые еще не вошли в систему. После того, как тестировщик войдет в систему, вы можете вызвать метод checkForUpdate , чтобы проверить, имеет ли тестировщик доступ к новой сборке.
Давайте отключим автоматическую проверку обновлений в методе onResume, закомментировав вызов checkForUpdate() .
MainActivity.kt
override fun onResume() {
super.onResume()
//checkForupdate()
}
Вместо этого, метод checkForUpdate() уже добавлен в обработчик события OnClickListener объекта updatebutton.
Теперь давайте реализуем наш метод signIn() , который будет выполнять вход пользователя, если он не авторизован, или выход пользователя, если он уже авторизован.
MainActivity.kt
private fun signIn() {
if (isTesterSignedIn()) {
firebaseAppDistribution.signOutTester()
configureUpdateButton()
configureSigninButton()
} else {
firebaseAppDistribution.signInTester()
}
}
Наконец, давайте реализуем метод isTesterSignedIn .
MainActivity.kt
private fun isTesterSignedIn() : Boolean {
return firebaseAppDistribution.isTesterSignedIn
}
Создайте и протестируйте свою реализацию.
8. Поздравляем!
Вы интегрировали функцию «отображения уведомлений внутри приложения» в приложение, используя Android SDK Firebase App Distribution.
Что мы рассмотрели
- Firebase App Distribution
- Firebase App Distribution: Новые уведомления, Android SDK
Следующие шаги
Узнать больше
Есть вопрос?
Сообщить о проблемах