1. 概述
歡迎來到在 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
目錄 ( )從示例代碼下載(文件>打開> .../codelab-appdistribution-android/start)。
您現在應該在 Android Studio 中打開啟動項目。
4. 創建 Firebase 控制台項目
添加新的 Firebase 項目
- 打開Firebase 控制台。
- 選擇添加項目,然後將您的項目命名為“Firebase Codelab”。
您不需要為此項目啟用 Google Analytics。
- 單擊創建項目。
將應用添加到 Firebase
向 Firebase 註冊您的應用。使用“com.google.firebase.appdistributioncodelab”作為包名稱。
將 google-services.json 文件添加到您的應用程序
添加包名稱並選擇註冊後,請按照以下步驟將 google-services.json 添加到您的應用程序:
- 單擊下載 google-services.json以獲取您的 Firebase Android 配置文件。
- 將 google-services.json 文件複製到項目中的
app
目錄中。 - 下載文件後,您可以跳過控制台中顯示的後續步驟(這些步驟已在 build-android-start 項目中為您完成)。
更新應用程序 ID 以匹配您的 Firebase 應用
- 在左側菜單(項目選項卡)中,確保您位於“Android”視圖並找到“Gradle 腳本”選項卡,然後打開模塊(應用程序級)Gradle 文件(通常為
app/build.gradle.kts
)。 - 更改
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 中的應用程序的帳戶來啟用警報。調用時,該方法會執行以下序列:
- 檢查測試儀是否啟用警報。如果沒有,該方法會顯示一個預構建的對話框,提示測試人員使用其 Google 帳戶登錄 App Distribution。
啟用警報是測試設備上的一次性過程,在應用程序更新期間持續存在。警報在測試設備上保持啟用狀態,直到應用程序被卸載或調用signOutTester
方法為止。
- 檢查是否有新的可用版本供測試人員安裝。
- 顯示預先構建的警報,提示測試人員下載最新版本。
- 在繼續更新之前檢查新的構建類型:
- 如果新版本是 App Bundle (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 文件:
- 打開 Firebase 控制台的“應用程序分發”頁面。出現提示時選擇您的 Firebase 項目。
- 在“發布”頁面上,從下拉菜單中選擇要分發的應用程序。
- 單擊開始
- 將應用程序的 APK 文件拖到控制台進行上傳。
- 上傳完成後,指定您想要接收構建的測試人員組和單個測試人員。 (添加您的電子郵件以接收邀請。)然後,添加構建的發行說明。要了解有關創建測試人員組的更多信息,請參閱添加和刪除測試人員。
- 單擊“分發”以使構建版本可供測試人員使用。
在 Firebase 控制台中,您現在可以看到在應用版本下添加的測試人員。
由於您提供了電子郵件地址,因此您將收到一封來自 Firebase App Distribution 的電子郵件,邀請您測試該應用。您現在是第一個測試者了!按照接受邀請中的說明在測試設備上設置為測試人員。
接受邀請
您需要首先接受下載並測試該版本的邀請。
- 在您的 Android 測試設備上,打開從 Firebase App Distribution 發送的電子郵件,然後點擊開始。
- 在顯示的Firebase App Distribution測試器 Web 應用中,使用您的 Google 帳戶登錄並點擊接受邀請。您現在可以看到邀請您測試的版本。
從測試設備下載版本
當您導航到 AppDistribution Codelab 應用程序時,您可以看到該版本已可供下載。
- 點擊下載,然後安裝並運行該應用程序!
- 當應用程序啟動時,它會要求您啟用新的構建警報。點擊打開。
- 使用您的測試帳戶登錄..
您將返回到應用程序。下次運行應用程序時,您無需登錄或接受提醒
向您的測試人員分發更新
- 在模塊(應用程序級)Gradle 文件(通常是 app/build.gradle)中將 versionName 更新為“1.1”,將 versionCode 更新為 2。
- 使用正常流程構建 APK。您必須使用調試密鑰或應用程序簽名密鑰對 APK 進行簽名。
- 在您的 Firebase 控制台中上傳這個新的 APK,再次將您的電子郵件添加為測試人員,然後單擊“分發” 。
測試構建警報
- 如果該應用程序已打開,請確保已將其關閉。
- 重新啟動應用程序。
- 當應用程序重新啟動時,您會收到新版本可用警報。
- 要接收最新版本,請單擊“更新” 。
- 如果出現提示,請選擇啟用來自未知來源的安裝的選項。
- 單擊下一個屏幕上的“安裝” (或“更新” )。
- 恭喜!您可以使用內置警報更新您的應用程序。
7. 自定義測試人員登錄
方法signInTester/signOutTester和isTesterSignedIn使您能夠更靈活地自定義測試人員的登錄體驗,從而更好地匹配您的應用程序的外觀和感覺。
以下示例檢查測試人員是否已登錄其 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
下一步
了解更多
有一個問題?
報告問題