您可以使用選用的 Firebase App Distribution iOS 和 Android SDK,在應用程式推出新版本可供安裝時,向測試人員顯示應用程式內快訊。本指南說明如何使用 App Distribution iOS 和 Android SDK,為測試人員建立及自訂新的建構警示。
事前準備
如果您尚未將 Firebase 新增至 iOS 專案,請先完成這項操作。
步驟 1:啟用 App Distribution Tester API
請在 Google Cloud 控制台。
在「Firebase App Testers API」下方,按一下「啟用」。
步驟 2:在應用程式中新增 App Distribution
開啟您為專案建立的 Podfile (或執行
pod init
來建立 Podfile),然後在目標區段中新增以下行:pod 'FirebaseAppDistribution'
在 Podfile 的目錄中執行
pod install
,然後開啟已建立的.xcworkspace
檔案。將 Firebase 模組匯入
App
結構或UIApplicationDelegate
:Swift
import FirebaseCore import FirebaseAppDistribution
Objective-C
@import FirebaseCore; @import FirebaseAppDistribution;
在應用程式委派作業的
application(_:didFinishLaunchingWithOptions:)
方法中設定FirebaseApp
共用例項:Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
如果停用 swizzling,請在
application(_:open:options:)
實作中將任何已開啟的網址傳遞至 App Distribution SDK:Swift
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool { if AppDistribution.appDistribution().application(application, open: url, options: options) { return true } // Handle other non-Firebase URLs here. return false }
Objective-C
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options { if ([[FIRAppDistribution appDistribution] application:app openURL:url options:options]) { return YES; } // Handle other non-Firebase URLs here. return NO; }
最後,請重新編譯應用程式。
步驟 3:設定應用程式內快訊
App Distribution SDK 提供兩種設定應用程式內建構快訊的方式: 您的測試人員:這是基本的快訊設定,隨附預先建構的應用程式更新 和登入對話方塊 (向測試人員顯示) 以及進階快訊 即可自訂使用者介面。如果您是 App Distribution SDK 的新手,建議您先使用基本快訊設定。
基本設定
使用 checkForUpdate
向尚未啟用快訊的測試人員顯示預先建構的啟用快訊對話方塊,然後檢查是否有可用的新版本。呼叫時,方法會執行以下序列:
提示測試人員登入帳戶,檢查是否已啟用快訊功能 App Distribution使用自己的 Google 帳戶。
如果測試人員尚未啟用警示,系統會顯示預先建構的對話方塊。
在測試裝置上啟用警報是一次性程序,且會在應用程式更新後持續保留。在測試裝置上,警報會一直處於啟用狀態,直到應用程式解除安裝或呼叫
signOutTester
方法為止。詳情請參閱方法的參考說明文件 (Swift 或 Objective-C)。檢查可供測試人員安裝的新版本。
您可以在應用程式的任何位置叫用 checkForUpdate()
。舉例來說,您可以在應用程式根檢視畫面的 onAppear(perform:)
中加入 checkForUpdate()
,提示測試人員在啟動時安裝新發布的版本。
下列範例會檢查測試人員是否已啟用快訊 且可存取新建構作業,如果是的話,會在觸發 可用的版本:
Swift
AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
if error != nil {
// Handle error
return
}
guard let release = release else {
return
}
// Customize your alerts here.
let title = "New Version Available"
let message = "Version \(release.displayVersion)(\(release.buildVersion)) is available."
let uialert = UIAlertController(title: title,message: message, preferredStyle: .alert)
uialert.addAction(UIAlertAction(title: "Update", style: UIAlertAction.Style.default) {
_ in
UIApplication.shared.open(release.downloadURL)
})
uialert.addAction(UIAlertAction(title: "Cancel", style: UIAlertAction.Style.cancel) {
_ in
})
// self should be a UIViewController.
self.present(uialert, animated: true, completion: nil)
})
Objective-C
[[FIRAppDistribution appDistribution]
checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
NSError *_Nullable error) {
if (error) {
// Handle error
return;
}
if (release) {
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"New Version Available"
message:[NSString stringWithFormat:@"Version %@ (%@) is available.", release.displayVersion,
release.buildVersion] preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *updateAction = [UIAlertAction actionWithTitle:@"Update"
style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
[[UIApplication sharedApplication] openURL:release.downloadURL options:@{}
completionHandler:nil];
}];
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel"
style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {}];
[alert addAction:updateAction];
[alert addAction:cancelAction];
[self presentViewController:alert animated:YES completion:nil];
}
}];
進階設定
signInTester()
和 isTesterSignedIn
方法讓你更有彈性
自訂測試人員的登入體驗,使其更符合
外觀和風格
以下範例會檢查測試人員是否已登入 Firebase App Distribution 測試人員帳戶,因此您可以選擇只向尚未登入的測試人員顯示登入 UI。測試人員登入後,您可以呼叫 checkForUpdate()
,檢查測試人員是否有權存取新版本。
Swift
// Sign in a tester without automatically checking for update
if (!AppDistribution.appDistribution().isTesterSignedIn) {
AppDistribution.appDistribution().signInTester (completion: { error in
// completion block for signInTester
if (error != nil) {
// handle failed sign in
return
}
// handle successful sign in
})
}
// Only check for update if tester is already signed in - do not prompt
if (AppDistribution.appDistribution().isTesterSignedIn) {
AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
// completion block for check for update
})
}
Objective-C
// Sign in a tester without automatically checking for update
if(![[FIRAppDistribution appDistribution] isTesterSignedIn]) {
[[FIRAppDistribution appDistribution]
signInTesterWithCompletion:^(NSError *_Nullable error) {
// completion block for signInTester
if (error) {
// handle failed sign in
return;
}
// handle successful sign in
}];
}
// only check for update if tester is already signed in - do not prompt
if([[FIRAppDistribution appDistribution] isTesterSignedIn]) {
[[FIRAppDistribution appDistribution]
checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
NSError *_Nullable error) {
// completion block for check for update
}];
}
如要進一步瞭解其他方法,包括 signOutTester()
,
請參閱 App Distribution 的參考說明文件
Swift
和 Objective-C 即可。
步驟 4:建構及測試實作項目
最後,請建構應用程式並測試導入作業,方法是 在 Android Vitals 中 提供給測試人員,請使用 Firebase 控制台。
如需常見問題的相關協助,請參閱 App Distribution 疑難排解指南,例如:
- 測試人員沒有收到應用程式內快訊
- 系統多次提示測試人員登入 Google