使用 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 插件底部,添加“应用分发”插件:

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

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

第 2 步:进行 Firebase 身份验证

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

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

  1. app/build.gradle 文件中,通过添加至少一个 firebaseAppDistribution 部分来配置“应用分发”。您可以针对构建类型和产品方案配置“应用分发”。例如,要将 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"
              }
          }
        }
    
        // ...
    }
    

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

应用分发构建参数
appId

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

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

之前未受邀测试应用的测试人员会收到电子邮件邀请函以开始测试(请参阅测试人员设置指南,了解如何安装该应用)。当有新的构建版本准备接受测试时,现有测试人员将收到电子邮件通知。

如需详细了解产品方案,请参阅配置构建变体