使用 Firebase App Distribution Android SDK 提醒測試人員您的新應用發布 - Codelab

一、概述

c7a9160ef7b184c7.png22e0b52f771c060d.png

歡迎來到在您的 Android 應用代碼實驗室中集成 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 Scripts”選項卡並打開您的模塊(應用程序級)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 Store 以完成更新過程。
  5. 如果新構建是 APK,SDK 會在後台下載新構建,並在下載完成時提示測試人員安裝新構建。 SDK 使用NotificationManager.您可以通過將onProgressUpdate處理程序附加到updateIfNewReleaseAvailable任務來添加自己的進度指示器。

您可以在應用中的任何位置調用updateIfNewReleaseAvailable() 。例如,您可以在 MainActivity 的onResume()方法期間調用updateIfNewReleaseAvailable()

打開MainActivity.kt ,並像這樣創建onResume()方法:

主活動.kt

override fun onResume() {
    super.onResume()
    checkForUpdate()
}

現在讓我們實現checkForUpdate()方法。

主活動.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 控制台的App Distribution 頁面。出現提示時選擇您的 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 發送的電子郵件,然後點擊Get Started
  2. 在出現的Firebase App Distribution測試器網絡應用程序中,使用您的 Google 帳戶登錄並點擊接受邀請。您現在可以看到受邀測試的版本。

c18cb684f8e82ad6.png

從測試設備下載版本

當您導航到 AppDistribution Codelab 應用程序時,您可以看到該版本已準備好下載。

5414d9a536f25ece.png

  1. 點擊下載,然後安裝並運行該應用程序!
  2. 當應用程序啟動時,它會要求您啟用新構建警報。點擊打開

b059e09acaa4779f.png

  1. 使用您的測試員帳戶登錄..

22e0b52f771c060d.png

您將返回到應用程序。下次運行該應用程序時,您無需登錄或接受提醒

c9f33df16a2680d.png

向您的測試人員分發更新

  1. 在模塊(應用程序級)Gradle 文件(通常是 app/build.gradle)中將版本名稱更新為“1.1”,將版本代碼更新為 2。
  2. 使用正常流程構建您的 APK。您必須使用調試密鑰或應用簽名密鑰對 APK 進行簽名。
  3. 在您的 Firebase 控制台中上傳這個新的 APK,再次將您的電子郵件添加為測試人員,然後點擊Distribute

2dfa702edfdce6b8.png

測試構建警報

  1. 如果應用程序處於打開狀態,請確保關閉它。
  2. 重新啟動應用程序。
  3. 當應用程序重新啟動時,您會收到新版本可用警報。

987e3d0ba4e56f84.png

  1. 要接收最新版本,請單擊更新
  2. 如果出現提示,請選擇啟用未知來源安裝的選項。
  3. 在下一個屏幕上單擊安裝(或更新)。

a7c7cd15d60bc764.png

  1. 恭喜!您可以使用內置警報更新您的應用程序。

7.自定義測試人員登錄

signInTester/signOutTesterisTesterSignedIn方法讓您可以更靈活地自定義測試人員的登錄體驗,因此它可以更好地匹配您的應用程序的外觀和感覺。

以下示例檢查測試人員是否已登錄其 Firebase App Distribution 測試人員帳戶,因此您可以選擇僅對尚未登錄的測試人員顯示您的登錄 UI。測試人員登錄後,您可以隨後調用checkForUpdate以檢查測試人員是否有權訪問新構建。

讓我們通過註釋掉checkForUpdate()調用來禁用在onResume中自動檢查更新。

主活動.kt

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

相反, checkForUpdate()已添加到更新按鈕的 OnClickListener 中。

現在,讓我們實現我們的signIn()方法,如果用戶已註銷,它將登錄用戶,如果用戶已經登錄,則將用戶註銷。

主活動.kt

    private fun signIn() {
        if (isTesterSignedIn()) {
            firebaseAppDistribution.signOutTester()
            configureUpdateButton()
            configureSigninButton()
        } else {
            firebaseAppDistribution.signInTester()
        }
    }

最後讓我們實現isTesterSignedIn方法。

主活動.kt

    private fun isTesterSignedIn() : Boolean {
        return firebaseAppDistribution.isTesterSignedIn
    }

構建並測試您的實施

8. 恭喜!

您已使用 Firebase App Distribution Android SDK 將“應用內提醒顯示”功能構建到應用中。

我們涵蓋的內容

  • Firebase 應用分發
  • Firebase 應用分發新警報 Android SDK

下一步

了解更多

有一個問題?

報告問題