Уведомляйте тестировщиков о новых выпусках приложений с помощью Firebase App Distribution Android SDK – Codelab

1. Обзор

c7a9160ef7b184c7.png22e0b52f771c060d.png

Добро пожаловать на практическую работу «Интеграция 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 ( android_studio_folder.png ) из примера кода для загрузки ( Файл > Открыть > .../codelab-appdistribution-android/start).

Теперь у вас должен быть открыт стартовый проект в Android Studio.

4. Создайте и настройте проект Firebase.

Создайте новый проект Firebase

  1. Войдите в консоль Firebase, используя свою учетную запись Google.
  2. Нажмите кнопку, чтобы создать новый проект, а затем введите имя проекта (например, App Distribution Codelab ).
  3. Нажмите «Продолжить» .
  4. При появлении соответствующего запроса ознакомьтесь с условиями Firebase и примите их, а затем нажмите кнопку «Продолжить» .
  5. (Необязательно) Включите помощь ИИ в консоли Firebase (так называемая «Gemini в Firebase»).
  6. Для этой лабораторной работы вам не понадобится Google Analytics, поэтому отключите опцию Google Analytics.
  7. Нажмите «Создать проект» , дождитесь завершения подготовки проекта, а затем нажмите «Продолжить» .

Добавить приложение в Firebase

Зарегистрируйте приложение в Firebase . Используйте «com.google.firebase.appdistributioncodelab» в качестве имени пакета.

Добавьте файл google-services.json в свое приложение

После добавления имени пакета и выбора «Зарегистрировать» выполните следующие действия, чтобы добавить google-services.json в свое приложение:

  1. Нажмите «Загрузить google-services.json» , чтобы получить файл конфигурации Firebase Android.
  2. Скопируйте файл google-services.json в каталог app вашего проекта.
  3. После загрузки файла вы можете пропустить следующие шаги, показанные в консоли (они уже выполнены в проекте build-android-start).

Обновите идентификатор приложения, чтобы он соответствовал вашему приложению Firebase.

  1. В левом меню (вкладка «Проект») убедитесь, что вы находитесь на представлении «Android», найдите вкладку «Gradle Scripts» и откройте файл Gradle вашего модуля (уровня приложения) (обычно app/build.gradle.kts ).
  2. Измените свойство 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. При вызове метод выполняет следующую последовательность:

  1. Проверяет, включил ли тестировщик оповещения. Если нет, метод отображает встроенное диалоговое окно, предлагающее тестировщикам войти в App Distribution, используя свою учётную запись Google.

Включение оповещений выполняется однократно на тестовом устройстве и сохраняется при каждом обновлении приложения. Оповещения остаются включенными на тестовом устройстве до тех пор, пока приложение не будет удалено или не будет вызван метод signOutTester .

  1. Проверяет наличие новых доступных сборок, которые может установить тестер.
  2. Отображает предварительно созданное оповещение, предлагающее тестировщику загрузить последнюю версию.
  3. Проверяет новый тип сборки перед продолжением обновления:
  4. Если новая сборка представляет собой App Bundle (AAB), перенаправляет тестировщика в Play Store для завершения процесса обновления.
  5. Если новая сборка представляет собой 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:

  1. Откройте страницу «Распространение приложений» в консоли Firebase. При появлении запроса выберите свой проект Firebase.
  2. На странице «Релизы» в раскрывающемся меню выберите приложение, которое вы хотите распространить.

623460c3c8a82ce6.png

  1. Нажмите « Начать».

bf503b25066ff4a4.png

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

3343048f0930e84b.png

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

2be58fe195928bf9.png

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

9935a41810344c61.png

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

Принять приглашение

Сначала вам необходимо принять приглашение, чтобы загрузить и протестировать релиз.

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

c18cb684f8e82ad6.png

Загрузите релиз с тестового устройства

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

5414d9a536f25ece.png

  1. Нажмите «Загрузить» , затем установите и запустите приложение!
  2. При запуске приложение попросит включить оповещения о новых сборках. Нажмите « Включить» .

b059e09acaa4779f.png

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

22e0b52f771c060d.png

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

c9f33df16a2680d.png

Распространите обновление среди своих тестировщиков

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

2dfa702edfdce6b8.png

Оповещения о тестовой сборке

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

987e3d0ba4e56f84.png

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

a7c7cd15d60bc764.png

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

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

Следующие шаги

Узнать больше

Есть вопрос?

Сообщить о проблемах