透過 Firebase 應用程式發布 Android SDK 通知測試人員您的新應用程式版本 - 程式碼研究室

1. 總覽

c7a9160ef7b184c7.png 22e0b52f771c060d.png

歡迎參加「在 Android 應用程式中整合 Firebase 應用程式發布 SDK」程式碼研究室。在本程式碼研究室中,您將在應用程式中加入 App Distribution Android SDK,以便在有新版本可供下載時,向測試人員顯示應用程式內快訊。您將瞭解如何使用基本設定和自訂設定,讓測試人員登入以接收更新。接著,您會將新版本推送至「應用程式發布」,並在應用程式中觸發新的建構快訊。

課程內容

  • 如何使用應用程式發布功能,將預先發布版應用程式發送給測試人員
  • 如何將 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) (依序點選「File」 >「Open」 > .../codelab-appdistribution-android/start)。

您現在應該已在 Android Studio 中開啟起始專案。

4. 建立及設定 Firebase 專案

建立新的 Firebase 專案

  1. 使用 Google 帳戶登入 Firebase 控制台
  2. 按一下按鈕建立新專案,然後輸入專案名稱 (例如 App Distribution Codelab)。
  3. 按一下「繼續」
  4. 如果系統提示,請詳閱並接受 Firebase 條款,然後按一下「繼續」
  5. (選用) 在 Firebase 控制台中啟用 AI 輔助功能 (稱為「Gemini in Firebase」)。
  6. 本程式碼研究室不需要 Google Analytics,因此請關閉 Google Analytics 選項。
  7. 按一下「建立專案」,等待專案佈建完成,然後按一下「繼續」

將應用程式新增至 Firebase

向 Firebase 註冊應用程式。使用「com.google.firebase.appdistributioncodelab」做為套件名稱。

將 google-services.json 檔案新增至應用程式

新增套件名稱並選取「註冊」後,請按照下列步驟將 google-services.json 新增至應用程式:

  1. 按一下「Download google-services.json」,取得 Firebase Android 設定檔。
  2. 將 google-services.json 檔案複製到專案的 app 目錄。
  3. 下載檔案後,您可以略過控制台中顯示的後續步驟 (build-android-start 專案已為您完成這些步驟)。

更新應用程式 ID,使其與 Firebase 應用程式相符

  1. 在左側選單 (「Project」分頁) 中,確認您位於「Android」檢視畫面,然後找到「Gradle Scripts」分頁,並開啟模組 (應用程式層級) Gradle 檔案 (通常是 app/build.gradle.kts)。
  2. applicationId 屬性變更為與 Firebase 應用程式的應用程式 ID 相符。這應該是「com.google.firebase.appdistributioncodelab」

將專案與 Gradle 檔案同步

為確保應用程式可使用所有依附元件,請從 Android Studio 工具列中選取「File」>「Sync Project with Gradle Files」,將專案與 Gradle 檔案同步處理。

5. 使用 App Distribution Android SDK 設定應用程式內的新版本快訊

在這個步驟中,您會在應用程式中新增 Firebase App Distribution Android SDK,並在應用程式有新版本可供安裝時,向測試人員顯示應用程式內快訊。如要這麼做,請務必為「Firebase Codelab」專案 (在 Google Cloud 控制台中) 啟用 Firebase 應用程式測試人員 API。請使用相同帳戶登入,然後從頂端的下拉式選單中選取正確的專案。

設定應用程式內快訊

App Distribution Android SDK 提供兩種方式,可為測試人員設定應用程式內建構版本快訊:

  • 基本快訊設定,內建對話方塊可向測試人員顯示。
  • 進階快訊設定,可自訂使用者介面 (UI)。

我們會先從基本快訊設定開始。您可以透過 updateIfNewReleaseAvailable 向尚未啟用快訊的測試人員顯示預先建構的啟用快訊對話方塊,然後檢查是否有新版本。測試人員必須登入有權存取 App Distribution 中應用程式的帳戶,才能啟用快訊。呼叫時,這個方法會執行下列序列:

  1. 檢查測試人員是否已啟用快訊。如果沒有,這個方法會顯示預先建構的對話方塊,提示測試人員使用 Google 帳戶登入 App Distribution。

在測試裝置上啟用快訊後,即使應用程式更新,快訊仍會保持啟用狀態,直到解除安裝應用程式或呼叫 signOutTester 方法為止。

  1. 檢查是否有可供測試人員安裝的新建構版本。
  2. 顯示預先建構的快訊,提示測試人員下載最新版本。
  3. 先檢查新的建構類型,再繼續更新:
  4. 如果新版本是應用程式套件 (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 控制台的「App Distribution」頁面。系統顯示提示訊息時,請選取 Firebase 專案。
  2. 在「發布」頁面中,從下拉式選單選取要發布的應用程式。

623460c3c8a82ce6.png

  1. 按一下「開始使用」

bf503b25066ff4a4.png

  1. 將應用程式的 APK 檔案拖曳至管理中心,即可上傳。
  2. 上傳完成後,請指定要接收版本的測試人員群組和個別測試人員。(新增電子郵件地址即可接收邀請。)然後為版本新增版本資訊。如要進一步瞭解如何建立測試人員群組,請參閱「新增及移除測試人員」。

3343048f0930e84b.png

  1. 按一下「發布」,即可將版本提供給測試人員。

2be58fe195928bf9.png

在 Firebase 控制台中,您現在可以在應用程式發布版本下方看到新增的測試人員。

9935a41810344c61.png

由於您已提供電子郵件地址,您會收到 Firebase 應用程式發布的電子郵件,邀請您測試應用程式。您現在是第一位測試人員!按照「接受邀請」一文中的操作說明,在測試裝置上設定為測試人員。

接受邀請

您必須先接受邀請,才能下載及測試版本。

  1. 在 Android 測試裝置上開啟 Firebase 應用程式發布傳送的電子郵件,然後輕觸「開始使用」
  2. 在隨即顯示的 Firebase App Distribution 測試人員網頁應用程式中,使用 Google 帳戶登入,然後輕觸「接受邀請」。您現在可以看到受邀測試的版本。

c18cb684f8e82ad6.png

從測試裝置下載發行版本

前往 AppDistribution 程式碼研究室應用程式時,您會看到版本已可供下載。

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 應用程式發布測試人員帳戶,因此您可以選擇只向尚未登入的測試人員顯示登入 UI。測試人員登入後,您就可以呼叫 checkForUpdate,檢查測試人員是否能存取新版本。

讓我們在 onResume 中停用自動檢查更新,方法是註解掉 checkForUpdate() 呼叫。

MainActivity.kt

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

更新按鈕的 OnClickListener 中已新增 checkForUpdate()

現在,讓我們實作 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 應用程式發布 Android SDK,在應用程式中建構「應用程式內警報顯示」功能。

涵蓋內容

  • Firebase 應用程式發布
  • Firebase 應用程式發布新快訊 Android SDK

後續步驟

瞭解詳情

有任何問題嗎?

回報問題