Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

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

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

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

В этом руководстве описывается, как распространять APK среди тестировщиков с помощью подключаемого модуля App Distribution Gradle.

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

Если вы еще этого не сделали, добавьте Firebase в свой проект Android .

Если вы не используете какие-либо другие продукты Firebase, вам нужно только создать проект и зарегистрировать свое приложение. Однако, если вы решите использовать дополнительные продукты в будущем, обязательно выполните все шаги на странице, указанной выше.

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

  1. В файле Gradle корневого уровня (уровня проекта) ( <project>/build.gradle ) добавьте подключаемый модуль 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.0.3'
        }
    }
  2. В файле Gradle вашего модуля (уровня приложения) (обычно <project>/<app-module>/build.gradle ) добавьте подключаемый модуль App Distribution Gradle:

    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. Настройте свойства дистрибутива

  1. В файле app/build.gradle настройте распространение приложений, добавив хотя бы один раздел firebaseAppDistribution . Например, чтобы раздать сборку release тестерам:

    android {
    
        // ...
    
        buildTypes {
            release {
                firebaseAppDistribution {
                    artifactType="APK"
                    releaseNotesFile="/path/to/releasenotes.txt"
                    testers="ali@example.com, bri@example.com, cal@example.com"
                }
            }
        }
    
        // ...
    }
    
  2. Распределение приложений можно настроить для типов сборки и разновидностей продуктов . Например, для распространения 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"
              }
          }
        }
    
        // ...
    }
    
  3. Используйте следующие параметры для настройки раздачи:

Параметры сборки распространения приложений
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 assembleRelease appDistributionUploadRelease
    

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

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

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

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="APK"
      
    • Чтобы пригласить дополнительных тестировщиков или удалить существующих тестировщиков из вашего проекта 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 рядом с тестировщиком в выпуске. Приглашение можно обновить, отправив его повторно с помощью раскрывающегося меню в строке тестера.

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

Посетите лабораторию Android App Bundle, чтобы узнать, как шаг за шагом распространять выпуски App Bundle.