1. Обзор
Добро пожаловать в раздел «Интеграция Firebase App Distribution SDK в лабораторию кода вашего приложения для Android». В этой лаборатории кода вы добавите Android SDK для распространения приложений в свое приложение, чтобы отображать внутри приложения оповещения для ваших тестировщиков, когда новые сборки доступны для загрузки. Вы узнаете, как использовать как базовую, так и пользовательскую конфигурацию, чтобы тестировщики могли войти в систему и получать обновления. Затем вы отправите новый выпуск в App Distribution и активируете оповещение о новой сборке прямо в приложении.
Что вы узнаете
- Как использовать App Distribution для распространения предварительной версии приложения среди тестировщиков
- Как интегрировать Android SDK App Distribution в ваше приложение
- Как предупредить тестировщика о появлении новой предварительной сборки, готовой к установке
- Как настроить 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 .
- Выберите «Добавить проект» и назовите свой проект «Firebase Codelab».
Вам не нужно включать 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» и откройте файл Gradle вашего модуля (на уровне приложения) (обычно
app/build.gradle.kts
). - Измените свойство
applicationId
, чтобы оно соответствовало идентификатору вашего приложения Firebase. Это должно быть «com.google.firebase.appdistributioncodelab».
Синхронизируйте свой проект с файлами Gradle.
Чтобы убедиться, что все зависимости доступны для вашего приложения, синхронизируйте проект с файлами Gradle, выбрав «Файл» > «Синхронизировать проект с файлами Gradle» на панели инструментов Android Studio.
5. Настройте оповещения о новых сборках в приложении с помощью App Distribution Android SDK.
На этом этапе вы добавите Android SDK Firebase App Distribution в свое приложение и будете отображать внутри приложения оповещения для тестировщиков, когда новые сборки вашего приложения станут доступны для установки. Для этого убедитесь, что вы включили API-интерфейс Firebase App Testers для своего проекта Firebase Codelab (в Google Cloud Console). Вам необходимо войти в систему под той же учетной записью и выбрать правильный проект в раскрывающемся меню вверху.
Настройте оповещения в приложении
Android SDK App Distribution предоставляет вашим тестировщикам два способа настройки оповещений о сборках приложений:
- Базовая конфигурация оповещений, которая включает в себя предварительно созданное диалоговое окно для отображения тестировщикам.
- Расширенная конфигурация оповещений, позволяющая настроить пользовательский интерфейс (UI).
Мы начнем с базовой конфигурации оповещений. Вы можете использовать updateIfNewReleaseAvailable
чтобы отобразить предварительно созданное диалоговое окно включения оповещений для тестировщиков, которые еще не включили оповещения, а затем проверить, доступна ли новая сборка. Тестировщики включают оповещения, войдя в учетную запись, имеющую доступ к приложению в разделе «Распространение приложений». При вызове метод выполняет следующую последовательность:
- Проверяет, включил ли тестер оповещения. В противном случае метод отображает предварительно созданное диалоговое окно, предлагающее тестировщикам войти в 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 войдите в свою учетную запись Google и нажмите «Принять приглашение». Теперь вы можете увидеть выпуск, который вас пригласили протестировать.
Загрузите релиз с тестового устройства
Перейдя к приложению Codelab AppDistribution, вы увидите, что выпуск готов к загрузке.
- Нажмите «Загрузить» , затем установите и запустите приложение!
- Когда приложение запускается, оно просит вас включить оповещения о новых сборках. Нажмите «Включить» .
- Войдите в свою учетную запись тестера..
Вы вернулись в приложение. При следующем запуске приложения вам не нужно будет входить в систему или принимать оповещения.
Распространите обновление среди своих тестировщиков
- Обновите имя версии до «1.1» и код версии до 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 кнопки обновления.
Теперь давайте реализуем наш метод 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
Следующие шаги
Узнать больше
Есть вопрос?
- Stackoverflow 'распространение приложений Firebase '
- Slack-канал сообщества Firebase #app-distribution
Сообщить о проблемах