使用 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

下一步

了解更多

有一個問題?

報告問題