1. 總覽
歡迎參加「在 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
目錄 ( ) (依序點選「File」 >「Open」 > .../codelab-appdistribution-android/start)。
您現在應該已在 Android Studio 中開啟起始專案。
4. 建立及設定 Firebase 專案
建立新的 Firebase 專案
- 使用 Google 帳戶登入 Firebase 控制台。
- 按一下按鈕建立新專案,然後輸入專案名稱 (例如
App Distribution Codelab
)。 - 按一下「繼續」。
- 如果系統提示,請詳閱並接受 Firebase 條款,然後按一下「繼續」。
- (選用) 在 Firebase 控制台中啟用 AI 輔助功能 (稱為「Gemini in Firebase」)。
- 本程式碼研究室不需要 Google Analytics,因此請關閉 Google Analytics 選項。
- 按一下「建立專案」,等待專案佈建完成,然後按一下「繼續」。
將應用程式新增至 Firebase
向 Firebase 註冊應用程式。使用「com.google.firebase.appdistributioncodelab」做為套件名稱。
將 google-services.json 檔案新增至應用程式
新增套件名稱並選取「註冊」後,請按照下列步驟將 google-services.json 新增至應用程式:
- 按一下「Download google-services.json」,取得 Firebase Android 設定檔。
- 將 google-services.json 檔案複製到專案的
app
目錄。 - 下載檔案後,您可以略過控制台中顯示的後續步驟 (build-android-start 專案已為您完成這些步驟)。
更新應用程式 ID,使其與 Firebase 應用程式相符
- 在左側選單 (「Project」分頁) 中,確認您位於「Android」檢視畫面,然後找到「Gradle Scripts」分頁,並開啟模組 (應用程式層級) Gradle 檔案 (通常是
app/build.gradle.kts
)。 - 將
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 中應用程式的帳戶,才能啟用快訊。呼叫時,這個方法會執行下列序列:
- 檢查測試人員是否已啟用快訊。如果沒有,這個方法會顯示預先建構的對話方塊,提示測試人員使用 Google 帳戶登入 App Distribution。
在測試裝置上啟用快訊後,即使應用程式更新,快訊仍會保持啟用狀態,直到解除安裝應用程式或呼叫 signOutTester
方法為止。
- 檢查是否有可供測試人員安裝的新建構版本。
- 顯示預先建構的快訊,提示測試人員下載最新版本。
- 先檢查新的建構類型,再繼續更新:
- 如果新版本是應用程式套件 (AAB),系統會將測試人員重新導向至 Play 商店,完成更新程序。
- 如果新版本是 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 檔案:
- 按一下「開始使用」
- 將應用程式的 APK 檔案拖曳至管理中心,即可上傳。
- 上傳完成後,請指定要接收版本的測試人員群組和個別測試人員。(新增電子郵件地址即可接收邀請。)然後為版本新增版本資訊。如要進一步瞭解如何建立測試人員群組,請參閱「新增及移除測試人員」。
- 按一下「發布」,即可將版本提供給測試人員。
在 Firebase 控制台中,您現在可以在應用程式發布版本下方看到新增的測試人員。
由於您已提供電子郵件地址,您會收到 Firebase 應用程式發布的電子郵件,邀請您測試應用程式。您現在是第一位測試人員!按照「接受邀請」一文中的操作說明,在測試裝置上設定為測試人員。
接受邀請
您必須先接受邀請,才能下載及測試版本。
- 在 Android 測試裝置上開啟 Firebase 應用程式發布傳送的電子郵件,然後輕觸「開始使用」。
- 在隨即顯示的 Firebase App Distribution 測試人員網頁應用程式中,使用 Google 帳戶登入,然後輕觸「接受邀請」。您現在可以看到受邀測試的版本。
從測試裝置下載發行版本
前往 AppDistribution 程式碼研究室應用程式時,您會看到版本已可供下載。
- 輕觸「下載」,然後安裝並執行應用程式!
- 應用程式啟動時,會要求您啟用新版本快訊。輕觸「開啟」。
- 使用測試人員帳戶登入。
系統會將您帶回應用程式。下次執行應用程式時,您不必登入或接受快訊
向測試人員發布更新
- 在模組 (應用程式層級) Gradle 檔案 (通常是 app/build.gradle) 中,將 versionName 更新為「1.1」,versionCode 更新為 2。
- 使用一般程序建構 APK。您必須使用偵錯金鑰或應用程式簽署金鑰簽署 APK。
- 在 Firebase 控制台中上傳這個新 APK,再次將您的電子郵件地址新增為測試人員,然後按一下「發布」。
測試版本警報
- 如果應用程式已開啟,請務必關閉。
- 重新啟動應用程式。
- 應用程式重新啟動後,您會收到「有新版本可用」的快訊。
- 如要接收最新版本,請按一下「更新」。
- 如果系統提示,請選擇啟用從不明來源安裝的選項。
- 在下一個畫面中,按一下「安裝」 (或「更新」)。
- 恭喜!您已透過內建快訊更新應用程式。
7. 自訂測試人員登入畫面
signInTester/signOutTester 和 isTesterSignedIn 方法可讓您更彈性地自訂測試人員的登入體驗,使其更符合應用程式的外觀和風格。
以下範例會檢查測試人員是否已登入 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
後續步驟
瞭解詳情
有任何問題嗎?
回報問題