Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Распространение приложений Android среди тестировщиков с помощью Gradle

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

Вы можете интегрировать распространение приложений в процесс сборки Android с помощью плагина App Distribution Gradle. Плагин позволяет указать ваших тестировщиков и примечания к выпуску в файле build.gradle вашего приложения, что позволяет настраивать дистрибутивы для различных типов сборки и вариантов вашего приложения.

В этом руководстве описывается, как распространять наборы приложений Android (AAB) среди тестировщиков с помощью подключаемого модуля App Distribution Gradle.

App Distribution интегрируется с внутренней службой обмена приложениями Google Play для обработки загруженных вами AAB и предоставления APK, оптимизированных для конфигураций устройств ваших тестировщиков. Распространение AAB позволяет вам делать следующее:

  • Запускайте оптимизированные APK-файлы (обслуживаемые Google Play), оптимизированные для устройств ваших тестировщиков.

  • Выявляйте и устраняйте проблемы, связанные с устройством.

  • Протестируйте функции набора приложений, такие как доставка функций Play и доставка объектов Play.

  • Уменьшите размер загрузок для ваших тестировщиков.

Требуемые разрешения

Чтобы загрузить AAB в App Distribution, вы должны связать свое приложение Firebase с приложением в Google Play . Для выполнения этих действий у вас должен быть необходимый уровень доступа.

Если у вас нет необходимого доступа к Firebase, вы можете попросить владельца проекта Firebase назначить вам соответствующую роль в настройках IAM консоли Firebase . Если у вас есть вопросы о доступе к проекту Firebase, в том числе о поиске или назначении владельца, ознакомьтесь с часто задаваемыми вопросами «Разрешения и доступ к проектам Firebase» .

Следующая таблица относится к связыванию приложения Firebase с приложением в Google Play, а также к загрузке AAB.

Действие в консоли Firebase Требуется разрешение IAM Роли IAM, которые по умолчанию включают необходимые разрешения Дополнительные необходимые роли
Свяжите приложение Firebase с приложением в Google Play firebase.playLinks.update Одна из следующих ролей: Доступ к учетной записи разработчика Google Play в качестве администратора
Загрузить AAB для распространения приложений firebaseappdistro.releases.update Одна из следующих ролей: ––

Прежде чем вы начнете

  1. Если вы еще этого не сделали, добавьте Firebase в свой проект Android . В конце этого рабочего процесса у вас будет приложение Firebase для Android в вашем проекте Firebase.

    Если вы не используете какие-либо другие продукты Firebase, вам нужно только создать проект и зарегистрировать свое приложение. Если вы решите использовать дополнительные продукты, обязательно выполните все шаги, описанные в разделе « Добавление Firebase в ваш проект Android» .

  2. Чтобы создать ссылку Firebase на Google Play и загрузить AAB, убедитесь, что ваше приложение соответствует следующим требованиям:

    • Приложение в Google Play и приложение Firebase для Android зарегистрированы с использованием одного и того же имени пакета.

    • Приложение в Google Play настраивается на панели приложений и распространяется на одну из дорожек Google Play (внутреннее тестирование, закрытое тестирование, открытое тестирование или производство).

    • Проверка приложения в Google Play завершена, и приложение опубликовано. Ваше приложение опубликовано, если в столбце Статус приложения отображается один из следующих статусов: Внутреннее тестирование (не Черновик внутреннего тестирования), Закрытое тестирование, Открытое тестирование или Производство.

  3. Свяжите свое Android-приложение Firebase со своей учетной записью разработчика Google Play:

    1. В консоли Firebase перейдите в Project settings и выберите вкладку Integrations .

    2. На карточке Google Play нажмите Ссылка .
      Если у вас уже есть ссылки на Google Play, нажмите « Управление ».

    3. Следуйте инструкциям на экране, чтобы включить интеграцию распространения приложений и выбрать, какие приложения Firebase для Android следует связать с Google Play.

    Узнайте больше о привязке к Google Play .

Шаг 1. Настройте свой проект Android

  1. В файле Gradle корневого уровня (уровня проекта) ( <project>/build.gradle или <project>/build.gradle.kts ) добавьте плагин App Distribution Gradle в качестве зависимости buildscript:

    заводной

    buildscript {
      repositories {
        // Make sure that you have the following two repositories
        google()  // Google's Maven repository
        mavenCentral()  // Maven Central repository
      }
    
      dependencies {
          ...
          classpath 'com.android.tools.build:gradle:7.2.0'
    
          // Make sure that you have the Google services Gradle plugin dependency
          classpath 'com.google.gms:google-services:4.3.14'
    
          // Add the dependency for the App Distribution Gradle plugin
          classpath 'com.google.firebase:firebase-appdistribution-gradle:3.1.1'
      }
    }
    

    Котлин

    buildscript {
      repositories {
        // Make sure that you have the following two repositories
        google()  // Google's Maven repository
        mavenCentral()  // Maven Central repository
      }
    
      dependencies {
          ...
          classpath("com.android.tools.build:gradle:7.2.0")
    
          // Make sure that you have the Google services Gradle plugin dependency
          classpath("com.google.gms:google-services:4.3.14")
    
          // Add the dependency for the App Distribution Gradle plugin
          classpath("com.google.firebase:firebase-appdistribution-gradle:3.1.1")
      }
    }
    
  2. В файле Gradle вашего модуля (на уровне приложения) (обычно <project>/<app-module>/build.gradle или <project>/<app-module>/build.gradle.kts ) добавьте плагин Gradle App Distribution:

    заводной

    plugins {
      id 'com.android.application'
    
      // Make sure that you have the Google services Gradle plugin
      id 'com.google.gms.google-services'
    
      // Add the App Distribution Gradle plugin
      id 'com.google.firebase.appdistribution'
    }
    

    Котлин

    plugins {
      id("com.android.application")
    
      // Make sure that you have the Google services Gradle plugin
      id("com.google.gms.google-services")
    
      // Add the App Distribution Gradle plugin
      id("com.google.firebase.appdistribution")
    }
    
  3. Если вы находитесь за корпоративным прокси-сервером или брандмауэром, добавьте следующее системное свойство Java, которое позволяет службе распространения приложений загружать ваши дистрибутивы в Firebase:

    -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
    

Шаг 2. Авторизуйтесь в Firebase

Прежде чем вы сможете использовать плагин Gradle, вы должны сначала пройти аутентификацию в своем проекте Firebase одним из следующих способов. По умолчанию плагин Gradle ищет учетные данные из интерфейса командной строки Firebase, если не используется другой метод аутентификации.

Шаг 3. Настройте свойства дистрибутива

В файле Gradle вашего модуля (на уровне приложения) (обычно <project>/<app-module>/build.gradle или <project>/<app-module>/build.gradle.kts ) настройте распространение приложений, добавив как минимум один раздел firebaseAppDistribution .

Например, чтобы раздать сборку release тестерам, следуйте этим инструкциям:

заводной

android {

  // ...

  buildTypes {
      release {
          firebaseAppDistribution {
              artifactType="AAB"
              releaseNotesFile="/path/to/releasenotes.txt"
              testers="ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

Котлин

import com.google.firebase.appdistribution.gradle.firebaseAppDistribution

android {

  // ...

  buildTypes {
      release {
          firebaseAppDistribution {
              artifactType = "AAB"
              releaseNotesFile = "/path/to/releasenotes.txt"
              testers = "ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

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

Например, чтобы распространять debug и release сборки в «демонстрационном» и «полном» вариантах продукта, следуйте этим инструкциям:

заводной

android {

  // ...

  buildTypes {
      debug {...}
      release {...}
  }

  flavorDimensions "version"
  productFlavors {
      demo {
          dimension "version"
          firebaseAppDistribution {
              releaseNotes="Release notes for demo version"
              testers="demo@testers.com"
          }
      }
      full {
          dimension "version"
          firebaseAppDistribution {
              releaseNotes="Release notes for full version"
              testers="full@testers.com"
          }
      }
  }

  // ...
}

Котлин

import com.google.firebase.appdistribution.gradle.firebaseAppDistribution

android {

  // ...

  buildTypes {
      getByName("debug") {...}
      getByName("release") {...}
  }

  flavorDimensions += "version"
  productFlavors {
      create("demo") {
          dimension = "version"
          firebaseAppDistribution {
              releaseNotes = "Release notes for demo version"
              testers = "demo@testers.com"
          }
      }
      create("full") {
          dimension = "version"
          firebaseAppDistribution {
              releaseNotes = "Release notes for full version"
              testers = "full@testers.com"
          }
      }
  }

  // ...
}

Используйте следующие параметры для настройки раздачи:

Параметры сборки распространения приложений
appId

Идентификатор приложения Firebase вашего приложения. Требуется, только если у вас не установлен подключаемый модуль Google Services Gradle. Идентификатор приложения можно найти в файле google-services.json или в консоли Firebase на странице «Общие настройки» . Значение в вашем файле build.gradle переопределяет значение, выводимое плагином google-services .

appId="1:1234567890:android:321abc456def7890"
serviceCredentialsFile

Путь к JSON-файлу закрытого ключа вашей служебной учетной записи. Требуется, только если вы используете аутентификацию служебной учетной записи.

artifactType

Указывает тип файла вашего приложения. Можно установить "AAB" или "APK" .

artifactPath

Абсолютный путь к файлу APK или AAB, который вы хотите загрузить.

releaseNotes или releaseNotesFile

Примечания к выпуску для этой сборки.

Вы можете либо указать примечания к выпуску напрямую, либо указать путь к текстовому файлу.

testers или testersFile

Адреса электронной почты тестировщиков, которым вы хотите распространять сборки.

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

testers="ali@example.com, bri@example.com, cal@example.com"

Или вы можете указать путь к файлу, содержащему список адресов электронной почты через запятую:

testersFile="/path/to/testers.txt"
groups или groupsFile

Группы тестировщиков, которым вы хотите распространять сборки (см. Управление тестировщиками ). Группы задаются с помощью групповые псевдонимы , который вы можете найти на вкладке Testers в консоли Firebase App Distribution.

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

groups="qa-team, android-testers"

Или вы можете указать путь к файлу, содержащему разделенный запятыми список псевдонимов групп:

groupsFile="/path/to/tester-groups.txt"
stacktrace

Выводит трассировку стека для пользовательских исключений. Это полезно при устранении неполадок.

Шаг 4. Распространите ваше приложение среди тестировщиков

  1. Наконец, чтобы упаковать тестовое приложение и пригласить тестировщиков, создайте целевые объекты BUILD-VARIANT и appDistributionUpload BUILD-VARIANT с помощью оболочки Gradle вашего проекта, где BUILD-VARIANT — это дополнительный вариант продукта и тип сборки, которые вы настроили на предыдущем шаге. Дополнительные сведения о разновидностях продукта см. в разделе Настройка вариантов сборки .

    Например, чтобы распространять приложение с использованием варианта сборки release , выполните следующую команду:

    ./gradlew bundleRelease appDistributionUploadRelease
    

    Или, если вы прошли аутентификацию с помощью своей учетной записи Google и не предоставили учетные данные в файле сборки Gradle, включите переменную FIREBASE_TOKEN :

    export FIREBASE_TOKEN=1/a1b2c3d4e5f67890
    ./gradlew --stop // Only needed for environment variable changes
    ./gradlew bundleRelease appDistributionUploadRelease
    
  2. Вы также можете переопределить значения, установленные в файле build.gradle , передав аргументы командной строки в виде --<property-name>=<property-value> . Например:

    • Чтобы загрузить отладочную сборку в App Distribution:

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="AAB"
      
    • Чтобы пригласить дополнительных тестировщиков или удалить существующих тестировщиков из вашего проекта Firebase:

      ./gradlew appDistributionAddTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"
      ./gradlew appDistributionRemoveTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"
      

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

    Вы также можете указать тестировщиков, используя --file="/path/to/testers.txt" вместо --emails .

    appDistributionAddTesters и appDistributionRemoveTesters также принимают следующие аргументы:

    • projectNumber : номер вашего проекта Firebase.

    • serviceCredentialsFile : путь к файлу учетных данных службы Google. Это тот же аргумент, который используется в действии загрузки.

Как только вы распространяете свою сборку, она становится доступной на панели управления распространением приложений консоли Firebase в течение 150 дней (пять месяцев). Когда срок действия сборки истекает через 30 дней, уведомление об истечении срока действия появляется как в консоли, так и в списке сборок тестировщика на его тестовом устройстве.

Тестировщики, которые не были приглашены для тестирования приложения, получают приглашения по электронной почте для начала работы, а существующие тестировщики получают уведомления по электронной почте о том, что новая сборка готова к тестированию (прочитайте руководство по настройке тестера, чтобы узнать, как установить тестовое приложение). Вы можете отслеживать статус каждого тестировщика — приняли ли они приглашение и загрузили ли приложение — в консоли Firebase.

У тестировщиков есть 30 дней, чтобы принять приглашение протестировать приложение до истечения срока его действия. Когда срок действия приглашения истекает через 5 дней, уведомление об истечении срока действия появляется в консоли Firebase рядом с тестировщиком в выпуске. Приглашение можно обновить, отправив его повторно с помощью раскрывающегося меню в строке тестера.

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