使用 Gradle 将 Android 应用分发给测试人员

您可以使用“应用分发”Gradle 插件将“应用分发”集成到 Android 构建过程中。利用该插件,您可以在应用的 build.gradle 文件中指定测试人员和版本说明,从而针对应用的不同构建类型和变体配置分发。

准备工作

将 Firebase 添加到您的 Android 项目(如果尚未添加)。

如果您没有使用任何其他 Firebase 产品,只需创建一个项目并注册应用。但是,如果您决定以后使用其他产品,请务必完成上述链接页面上的所有步骤。

第 1 步:设置 Android 项目

  1. 在项目级 Gradle 文件(通常是 android/build.gradle)中,将“应用分发”插件作为构建脚本依赖项添加:

    buildscript {
        repositories {
            // Check that you have Google's Maven repository (if not, add it).
            google()
            jcenter()
        }
        dependencies {
            // Add the App Distribution Gradle plugin
            classpath 'com.google.firebase:firebase-appdistribution-gradle:2.0.1'
        }
    }
    
  2. 在应用级 Gradle 文件(通常是 android/app/build.gradle)的 Android 插件底部,添加 App Distribution 插件:

    apply plugin: 'com.android.application'
    // ...
    
    // Apply the App Distribution Gradle plugin
    apply plugin: 'com.google.firebase.appdistribution'
    // ...
    
  3. 如果您受公司代理或防火墙保护,请添加以下 Java 系统属性,以使 App Distribution 能够将您的分发上传到 Firebase:

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

第 2 步:进行 Firebase 身份验证

您必须首先通过 Firebase 项目进行身份验证,然后才能使用 Fastlane 插件。您可以通过三种方法实现此目的:

第 3 步。配置您的分发属性

  1. app/build.gradle 文件中,通过添加至少一个 firebaseAppDistribution 部分来配置 App Distribution。您可以针对构建类型和产品方案配置“应用分发”。例如,要将 release 构建版本分发给测试人员,请执行以下操作:

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

    要分发产品方案为“演示”和“完整”的 debugrelease 构建,请执行以下操作:

    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"
              }
          }
        }
    
        // ...
    }
    

请使用以下参数配置分发:

App Distribution 构建参数
appId

您的应用的 Firebase 应用 ID。只有在您未安装 Google 服务 Gradle 插件时才需要此 ID。您可以在 google-services.json 文件中或在 Firebase 控制台的“常规设置”页面中找到此应用 ID。您的 build.gradle 文件中的值会覆盖 google-services 插件的输出值。


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

服务帐号私钥 JSON 文件的路径。只有在使用服务帐号进行身份验证时才需要此参数。

apkPath

您要上传的 APK 文件的绝对路径或相对路径。如果未指定此参数,Gradle 会使用 APK 输出目录确定该文件的位置。

releaseNotesreleaseNotesFile

此构建的版本说明。

您可以直接指定版本说明,或指定一个纯文本文件的路径。

testerstestersFile

您要向其分发构建版本的测试人员的电子邮件地址。

您可以采用逗号分隔电子邮件地址列表的形式来指定测试人员:


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

或者,您也可以指定一个文件的路径,该文件包含以逗号分隔的电子邮件地址列表:


testersFile="/path/to/testers.txt"
groupsgroupsFile

您要向其分发构建版本的测试人员群组(请参阅管理测试人员)。使用群组别名指定群组,您可以在“Firebase 应用分发”控制台的测试人员标签页中查找群组别名。

您可以采用以逗号分隔的群组别名列表的形式来指定群组:


groups="qa-team, android-testers"

或者,您也可以指定一个文件的路径,该文件包含以逗号分隔的群组别名列表:


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

输出用户异常的堆栈轨迹。这在调试问题时很有用。

第 4 步:将您的应用分发给测试人员

最后,如需封装测试应用并邀请测试人员,请使用项目的 Gradle 封装容器来构建目标 assembleBUILD-VARIANTappDistributionUploadBUILD-VARIANT,其中 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

在您分发构建版本后,即可在 150 天(5 个月)内在 Firebase 控制台的“应用分发”信息中心中访问该构建版本。当该版本距离过期还有 30 天的时候,在控制台和测试人员的测试设备上的构建版本列表中都会显示到期通知。

之前未受邀测试应用的测试人员会收到邀请其开始测试的电子邮件,而现有测试人员将收到有关新构建版本已可供测试测试的电子邮件通知(请参阅测试人员设置指南了解如何安装测试应用)。您可以在 Firebase 控制台中监控每个测试人员的状态:他们是否接受了邀请以及是否下载了应用。