使用 Firebase App Distribution Android SDK 提醒测试人员您的新应用版本 - Codelab

1. 概述

c7a9160ef7b184c7.png22e0b52f771c060d.png

欢迎来到在 Android 应用 Codelab 中集成 Firebase 应用分发 SDK。在此 Codelab 中,您将向您的应用添加 App Distribution Android SDK,以便在新版本可供下载时向测试人员显示应用内警报。您将了解如何使用基本配置和自定义配置来让测试人员登录以接收更新。然后,您将向 App Distribution 推送新版本并在应用程序中触发新的构建警报。

你将学到什么

  • 如何使用 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 项目中为您完成)。

更新应用程序 ID 以匹配您的 Firebase 应用

  1. 在左侧菜单(项目选项卡)中,确保您位于“Android”视图并找到“Gradle 脚本”选项卡,然后打开模块(应用程序级)Gradle 文件(通常为app/build.gradle.kts )。
  2. 更改applicationId属性以匹配您的 Firebase 应用程序的应用程序 ID。这应该是“com.google.firebase.appdistributioncodelab”

将您的项目与 Gradle 文件同步

为了确保所有依赖项均可用于您的应用程序,请将您的项目与 Gradle 文件同步,从 Android Studio 工具栏中选择“文件”>“将项目与 Gradle 文件同步”

5. 使用 App Distribution Android SDK 设置应用内新建警报

在此步骤中,您将向您的应用添加 Firebase App Distribution Android SDK,并在您的应用的新版本可供安装时向测试人员显示应用内提醒。为此,请确保您已为“Firebase Codelab”项目(在 Google Cloud Console 中)启用Firebase App Testers API 。您需要使用同一帐户登录,然后从顶部的下拉菜单中选择正确的项目。

配置应用内警报

App Distribution Android SDK 提供了两种为测试人员设置应用内构建警报的方法:

  • 基本警报配置,带有一个预先构建的对话框以显示给测试人员。
  • 高级警报配置,可让您自定义用户界面 (UI)。

我们将从基本的警报配置开始。您可以使用updateIfNewReleaseAvailable向尚未启用警报的测试人员显示预构建的启用警报对话框,然后检查新版本是否可用。测试人员通过登录有权访问 App Distribution 中的应用程序的帐户来启用警报。调用时,该方法会执行以下序列:

  1. 检查测试仪是否启用警报。如果没有,该方法会显示一个预构建的对话框,提示测试人员使用其 Google 帐户登录 App Distribution。

启用警报是测试设备上的一次性过程,在应用程序更新期间持续存在。警报在测试设备上保持启用状态,直到应用程序被卸载或调用signOutTester方法为止。

  1. 检查是否有新的可用版本供测试人员安装。
  2. 显示预先构建的警报,提示测试人员下载最新版本。
  3. 在继续更新之前检查新的构建类型:
  4. 如果新版本是 App Bundle (AAB),则将测试人员重定向到 Play 商店以完成更新过程。
  5. 如果新版本是 APK,SDK 会在后台下载新版本,并在下载完成后提示测试人员安装新版本。 SDK 使用NotificationManager.您可以通过将onProgressUpdate处理程序附加到updateIfNewReleaseAvailable任务来添加自己的进度指示器。

您可以在应用程序中的任何位置调用updateIfNewReleaseAvailable() 。例如,您可以在 MainActivity 的onResume()方法期间调用updateIfNewReleaseAvailable()

打开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 进行签名。

将您的应用程序分发给测试人员

要将您的应用分发给测试人员,请使用 Firebase 控制台上传 APK 文件:

  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测试器 Web 应用中,使用您的 Google 帐户登录并点击接受邀请。您现在可以看到邀请您测试的版本。

c18cb684f8e82ad6.png

从测试设备下载版本

当您导航到 AppDistribution Codelab 应用程序时,您可以看到该版本已可供下载。

5414d9a536f25ece.png

  1. 点击下载,然后安装并运行该应用程序!
  2. 当应用程序启动时,它会要求您启用新的构建警报。点击打开

b059e09acaa4779f.png

  1. 使用您的测试帐户登录..

22e0b52f771c060d.png

您将返回到应用程序。下次运行应用程序时,您无需登录或接受提醒

c9f33df16a2680d.png

向您的测试人员分发更新

  1. 在模块(应用程序级)Gradle 文件(通常是 app/build.gradle)中将 versionName 更新为“1.1”,将 versionCode 更新为 2。
  2. 使用正常流程构建 APK。您必须使用调试密钥或应用程序签名密钥对 APK 进行签名。
  3. 在您的 Firebase 控制台中上传这个新的 APK,再次将您的电子邮件添加为测试人员,然后单击“分发”

2dfa702edfdce6b8.png

测试构建警报

  1. 如果该应用程序已打开,请确保已将其关闭。
  2. 重新启动应用程序。
  3. 当应用程序重新启动时,您会收到新版本可用警报。

987e3d0ba4e56f84.png

  1. 要接收最新版本,请单击“更新”
  2. 如果出现提示,请选择启用来自未知来源的安装的选项。
  3. 单击下一个屏幕上的“安装” (或“更新” )。

a7c7cd15d60bc764.png

  1. 恭喜!您可以使用内置警报更新您的应用程序。

7. 自定义测试人员登录

方法signInTester/signOutTesterisTesterSignedIn使您能够更灵活地自定义测试人员的登录体验,从而更好地匹配您的应用程序的外观和感觉。

以下示例检查测试人员是否已登录其 Firebase App Distribution 测试人员帐户,因此您可以选择仅向尚未登录的测试人员显示登录 UI。测试人员登录后,您可以调用checkForUpdate检查测试人员是否有权访问新版本。

让我们通过注释掉checkForUpdate()调用来禁用onResume中自动检查更新的功能。

MainActivity.kt

override fun onResume() {
        super.onResume()
        //checkForupdate()
    }

相反, checkForUpdate()已添加到 updatebutton 的 OnClickListener 中。

现在,让我们实现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. 恭喜!

您已使用 Firebase App Distribution Android SDK 将“应用内提醒显示”功能构建到应用中。

我们涵盖的内容

  • Firebase 应用程序分发
  • Firebase 应用程序分发新警报 Android SDK

下一步

了解更多

有一个问题?

报告问题