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

1. 總覽

c7a9160ef7b184c7.png 22e0b52f771c060d.png

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

課程內容

  • 如何使用「應用程式發布」功能向測試人員發布預先發布版應用程式
  • 如何將應用程式發布 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 中開啟「Start」專案。

4. 建立 Firebase 控制台專案

新增 Firebase 專案

  1. 開啟 Firebase 控制台
  2. 選取「Add Project」,然後將專案命名為「Firebase Codelab」。

您不必為這項專案啟用 Google Analytics。

  1. 按一下 [Create Project]

將應用程式新增至 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. 請按照 Firebase 應用程式的應用程式 ID 變更 applicationId 屬性。這應為「com.google.firebase.appdistributioncodelab」

將專案與 Gradle 檔案同步處理

如要確保應用程式可以使用所有依附元件,請依序選取「File」>「File」>,將專案與 Gradle 檔案同步處理透過 Android Studio 工具列同步處理專案與 Gradle 檔案。

5. 使用應用程式發布 Android SDK 設定應用程式內新的建構快訊

在這個步驟中,您要將 Firebase 應用程式發布 Android SDK 加入應用程式,並在應用程式可以安裝新版應用程式時向測試人員顯示應用程式內快訊。如要這麼做,請確定您已為「Firebase Codelab」啟用 Firebase App Testers API專案 (位於 Google Cloud 控制台中)您需要使用同一個帳戶登入,然後從頂端的下拉式選單中選取正確的專案。

設定應用程式內快訊

應用程式發布 Android SDK 提供兩種為測試人員設定應用程式內建構快訊的方式:

  • 基本的快訊設定,具有預先建構的對話方塊,會向測試人員顯示。
  • 進階快訊設定,可讓您自訂使用者介面 (UI)。

我們會從基本快訊設定開始。您可以使用 updateIfNewReleaseAvailable,向尚未啟用快訊的測試人員顯示預先建立的啟用快訊對話方塊,然後檢查是否有可用的新版本。測試人員可以在「應用程式發布」中登入有權存取應用程式的帳戶,以便接收快訊。呼叫此方法時,會執行以下序列:

  1. 檢查測試人員是否啟用快訊。若非如此,這個方法會顯示預先建立的對話方塊,提示測試人員使用自己的 Google 帳戶登入「應用程式發布」。

快訊功能在測試裝置上是一次性程序,啟用此程序會套用至應用程式的所有更新。在解除安裝應用程式或呼叫 signOutTester 方法之前,測試裝置上快訊會保持啟用狀態。

  1. 檢查可供測試人員安裝的新版本。
  2. 顯示預先建立的快訊,提示測試人員下載最新版本。
  3. 請先檢查新建構類型,再繼續更新:
  4. 如果新版本是應用程式套件 (AAB),請將測試人員重新導向至 Play 商店以完成更新程序。
  5. 如果新版本是 APK,SDK 會在背景下載新版本,並在下載完成後提示測試人員安裝新版本。SDK 會使用 NotificationManager. 向使用者傳送下載進度通知。您可以在 updateIfNewReleaseAvailable 工作中附加 onProgressUpdate 處理常式,自行新增進度指標。

您可以在應用程式的任何時間點呼叫 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 控制台建構應用程式,並測試實作項目,方法是使用 Firebase 控制台發布版本給測試人員。

建構應用程式

當您準備好向測試人員發行應用程式的預先發布版時,請照常建立 APK。您必須使用偵錯金鑰或應用程式簽署金鑰簽署 APK。

將應用程式發布給測試人員

如要將應用程式發布給測試人員,請透過 Firebase 控制台上傳 APK 檔案:

  1. 開啟 Firebase 控制台的「應用程式發布」頁面。在系統提示時選取 Firebase 專案。
  2. 在「版本」頁面的下拉式選單中,選取您要發行的應用程式。

623460c3c8a82ce6.png

  1. 點選「開始使用」

bf503b25066ff4a4.png

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

3343048f0930e84b.png

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

2be58fe195928bf9.png

現在只要前往 Firebase 控制台,就能在應用程式版本底下查看新增的測試人員。

9935a41810344c61.png

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

接受邀請

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

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

c18cb684f8e82ad6.png

透過測試裝置下載版本

前往「應用程式發布」程式碼研究室應用程式時,您可以看到該版本已可下載。

5414d9a536f25ece.png

  1. 輕觸「下載」,然後安裝並執行應用程式!
  2. 應用程式啟動時,會要求您啟用新的建構快訊。輕觸「開啟」。

b059e09acaa4779f.png

  1. 使用測試人員帳戶登入。

22e0b52f771c060d.png

您將返回應用程式。下次執行應用程式時,不需要登入或接受快訊

c9f33df16a2680d.png

向測試人員發布更新

  1. 將你的 versionName 更新為「1.1」將模組 (應用程式層級) Gradle 檔案 (通常是 app/build.gradle) 中的 versionCode 設為 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 應用程式發布測試人員帳戶,您就可以選擇只向尚未登入的測試人員顯示登入使用者介面。登入測試人員後,您可以呼叫 checkForUpdate 檢查測試人員是否有權使用新版本。

讓我們透過註解排除 checkForUpdate() 呼叫,停止在 onResume 中自動檢查更新。

MainActivity.kt

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

而是在 updatebutton 的 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

後續步驟

瞭解詳情

有任何疑問嗎?

回報問題