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

1. Обзор

c7a9160ef7b184c7.png22e0b52f771c060d.png

Добро пожаловать в лабораторию по интеграции SDK для распространения приложений Firebase в кодовую лабораторию вашего приложения для Android. В этой лаборатории кода вы добавите Android SDK для распространения приложений в свое приложение, чтобы отображать уведомления в приложении для ваших тестировщиков, когда новые сборки доступны для загрузки. Вы узнаете, как использовать как базовую, так и пользовательскую конфигурацию, чтобы ваши тестировщики входили в систему для получения обновлений. Затем вы отправите новый выпуск в 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 .
  2. Выберите «Добавить проект» и назовите свой проект «Firebase Codelab».

Вам не нужно включать Google Analytics для этого проекта.

  1. Щелкните Создать проект .

Добавить приложение в 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» и откройте файл Gradle вашего модуля (на уровне приложения) (обычно app/build.gradle.kts ).
  2. Измените свойство applicationId , чтобы оно соответствовало идентификатору вашего приложения Firebase. Это должно быть «com.google.firebase.appdistributioncodelab».

Синхронизируйте свой проект с файлами Gradle

Чтобы убедиться, что все зависимости доступны для вашего приложения, синхронизируйте проект с файлами Gradle, выбрав «Файл» > «Синхронизировать проект с файлами Gradle» на панели инструментов Android Studio.

5. Настройте оповещения о новых сборках в приложении с помощью Android SDK для распространения приложений.

На этом этапе вы добавите Android SDK Firebase App Distribution в свое приложение и отобразите оповещения в приложении для своих тестировщиков, когда новые сборки вашего приложения будут доступны для установки. Для этого убедитесь, что вы включили Firebase App Testers API для своего проекта Firebase Codelab (в Google Cloud Console). Вам нужно войти в систему с той же учетной записью и выбрать правильный проект из раскрывающегося меню вверху.

Настройте оповещения в приложении

App Distribution Android SDK предоставляет тестировщикам два способа настройки предупреждений о сборке в приложении:

  • Базовая конфигурация предупреждений, которая поставляется с готовым диалоговым окном для отображения тестерам.
  • Расширенная конфигурация предупреждений, позволяющая настроить пользовательский интерфейс (UI).

Мы начнем с базовой конфигурации предупреждений. Вы можете использовать updateIfNewReleaseAvailable , чтобы отобразить предварительно созданное диалоговое окно включения оповещений для тестировщиков, которые еще не включили оповещения, а затем проверить, доступна ли новая сборка. Тестировщики включают оповещения, войдя в учетную запись, которая имеет доступ к приложению в App Distribution. При вызове метод выполняет следующую последовательность:

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

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

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

c18cb684f8e82ad6.png

Скачать релиз с тестового устройства

Когда вы перейдете к приложению кодовой лаборатории AppDistribution, вы увидите, что выпуск готов к загрузке.

5414d9a536f25ece.png

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

b059e09acaa4779f.png

  1. Войдите в свою учетную запись тестера.

22e0b52f771c060d.png

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

c9f33df16a2680d.png

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

  1. Обновите имя версии до «1.1» и код версии до 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. Поздравляем!

Вы встроили в приложение функцию «отображение предупреждений в приложении» с помощью Android SDK Firebase App Distribution.

Что мы рассмотрели

  • Распространение приложений Firebase
  • Распространение приложений Firebase Новые оповещения Android SDK

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

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

Есть вопрос?

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