1. Обзор
Добро пожаловать на практическую работу «Интеграция Firebase App Distribution SDK в ваше Android-приложение». В этой практической работе вы добавите App Distribution Android SDK в своё приложение, чтобы отображать внутри приложения оповещения для тестировщиков о доступности новых сборок для загрузки. Вы узнаете, как использовать как базовую, так и пользовательскую конфигурацию, чтобы ваши тестировщики могли авторизоваться для получения обновлений. Затем вы отправите новый релиз в App Distribution и активируете оповещение о новой сборке прямо в приложении.
Чему вы научитесь
- Как использовать App Distribution для распространения предварительной версии приложения среди тестировщиков
- Как интегрировать App Distribution Android SDK в ваше приложение
- Как уведомить тестировщика о наличии новой предварительной сборки, готовой к установке
- Как настроить SDK в соответствии с вашими потребностями тестирования
Что вам понадобится
- Последняя версия Android Studio .
- Пример кода.
- Тестовое устройство с Android 4.4+ и сервисами Google Play 9.8 или более поздней версии или эмулятор с сервисами Google Play 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 (так называемая «Gemini в Firebase»).
- Для этой лабораторной работы вам не понадобится Google Analytics, поэтому отключите опцию 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, выбрав Файл > Синхронизировать проект с файлами Gradle на панели инструментов Android Studio.
5. Настройте оповещения о новых сборках в приложении с помощью App Distribution Android SDK
На этом этапе вы добавите Firebase App Distribution Android SDK в своё приложение и настроите отображение внутри приложения оповещений для тестировщиков о новых сборках, доступных для установки. Для этого убедитесь, что вы включили API Firebase App Testers для своего проекта «Firebase Codelab» (в Google Cloud Console). Вам необходимо войти в систему с той же учётной записью и выбрать нужный проект в раскрывающемся меню вверху.
Настройте оповещения в приложении
App Distribution Android SDK предоставляет два способа настройки оповещений о сборке приложения для ваших тестировщиков:
- Базовая конфигурация оповещений, включающая в себя предварительно созданный диалог для отображения тестировщикам.
- Расширенная конфигурация оповещений, позволяющая настраивать пользовательский интерфейс (UI).
Начнём с базовой настройки оповещений. С помощью updateIfNewReleaseAvailable
можно отобразить готовое диалоговое окно включения оповещений для тестировщиков, которые ещё не включили оповещения, а затем проверить, доступна ли новая сборка. Тестировщики включают оповещения, войдя в учётную запись с доступом к приложению в App Distribution. При вызове метод выполняет следующую последовательность:
- Проверяет, включил ли тестировщик оповещения. Если нет, метод отображает встроенное диалоговое окно, предлагающее тестировщикам войти в App Distribution, используя свою учётную запись Google.
Включение оповещений выполняется однократно на тестовом устройстве и сохраняется при каждом обновлении приложения. Оповещения остаются включенными на тестовом устройстве до тех пор, пока приложение не будет удалено или не будет вызван метод signOutTester
.
- Проверяет наличие новых доступных сборок, которые может установить тестер.
- Отображает предварительно созданное оповещение, предлагающее тестировщику загрузить последнюю версию.
- Проверяет новый тип сборки перед продолжением обновления:
- Если новая сборка представляет собой App Bundle (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 для тестирования войдите в свою учётную запись Google и нажмите «Принять приглашение». Теперь вы видите релиз, который вас пригласили протестировать.
Загрузите релиз с тестового устройства
При переходе в приложение AppDistribution codelab вы увидите, что релиз готов к загрузке.
- Нажмите «Загрузить» , затем установите и запустите приложение!
- При запуске приложение попросит включить оповещения о новых сборках. Нажмите « Включить» .
- Войдите в систему, используя свою учетную запись тестировщика.
Вы вернётесь в приложение. При следующем запуске приложения вам не потребуется входить в систему или принимать оповещения.
Распространите обновление среди своих тестировщиков
- Измените versionName на «1.1» и versionCode на 2 в файле Gradle вашего модуля (уровня приложения) (обычно app/build.gradle).
- Соберите 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. Поздравляем!
Вы встроили функцию «отображения оповещений внутри приложения» в приложение с помощью Firebase App Distribution Android SDK.
Что мы рассмотрели
- Распространение приложений Firebase
- Распространение приложений Firebase Новые оповещения Android SDK
Следующие шаги
Узнать больше
Есть вопрос?
Сообщить о проблемах