SDK iOS và Android Firebase App Distribution không bắt buộc cho phép bạn hiển thị cảnh báo trong ứng dụng cho người kiểm thử khi có thể cài đặt các bản dựng mới của ứng dụng. Hướng dẫn này giải thích cách sử dụng SDK iOS và Android App Distribution để tạo và tuỳ chỉnh cảnh báo bản dựng mới cho người kiểm thử.
Trước khi bắt đầu
Nếu bạn chưa thực hiện, hãy thêm Firebase vào dự án iOS.
Bước 1: Bật API Trình kiểm thử App Distribution
Chọn dự án của bạn trong bảng điều khiển Google Cloud.
Trong phần Firebase App Testers API (API Trình kiểm thử ứng dụng Firebase), hãy nhấp vào Bật.
Bước 2: Thêm App Distribution vào ứng dụng
Mở Podfile mà bạn đã tạo cho dự án (hoặc chạy
pod init
để tạo một Podfile), sau đó thêm dòng sau vào phần mục tiêu:pod 'FirebaseAppDistribution'
Trong thư mục của tệp pod, hãy chạy
pod install
, sau đó mở tệp.xcworkspace
đã tạo.Nhập mô-đun Firebase trong cấu trúc
App
hoặcUIApplicationDelegate
:Swift
import FirebaseCore import FirebaseAppDistribution
Objective-C
@import FirebaseCore; @import FirebaseAppDistribution;
Định cấu hình một thực thể dùng chung
FirebaseApp
trong phương thứcapplication(_:didFinishLaunchingWithOptions:)
của uỷ quyền ứng dụng:Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
Nếu tính năng hoán đổi bị tắt, hãy truyền mọi URL đã mở đến SDK App Distribution trong quá trình triển khai
application(_:open:options:)
: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; }
Cuối cùng, hãy biên dịch lại ứng dụng.
Bước 3: Định cấu hình cảnh báo trong ứng dụng
SDK App Distribution cung cấp hai cách thiết lập cảnh báo bản dựng trong ứng dụng cho người kiểm thử: cấu hình cảnh báo cơ bản, đi kèm với bản cập nhật ứng dụng được tạo sẵn và hộp thoại đăng nhập để hiển thị cho người kiểm thử, cũng như cấu hình cảnh báo nâng cao cho phép bạn tuỳ chỉnh giao diện người dùng của riêng mình. Trước tiên, bạn nên sử dụng cấu hình cảnh báo cơ bản nếu mới sử dụng SDK App Distribution.
Cấu hình cơ bản
Sử dụng checkForUpdate
để hiển thị hộp thoại bật cảnh báo tạo sẵn cho những người kiểm thử chưa bật cảnh báo, sau đó kiểm tra xem có bản dựng mới hay không. Khi được gọi, phương thức này sẽ thực thi trình tự sau:
Kiểm tra xem người kiểm thử đã bật thông báo hay chưa bằng cách nhắc họ đăng nhập vào App Distribution bằng Tài khoản Google của họ.
Nếu người kiểm thử chưa bật cảnh báo, hãy hiển thị hộp thoại tạo sẵn.
Việc bật cảnh báo là một quy trình một lần trên thiết bị thử nghiệm và vẫn tồn tại trong các bản cập nhật của ứng dụng. Cảnh báo vẫn được bật trên thiết bị thử nghiệm cho đến khi ứng dụng bị gỡ cài đặt hoặc cho đến khi phương thức
signOutTester
được gọi. Hãy xem tài liệu tham khảo của phương thức (Swift hoặc Objective-C) để biết thêm thông tin.Kiểm tra các bản dựng mới có sẵn để người kiểm thử cài đặt.
Bạn có thể gọi checkForUpdate()
tại bất kỳ thời điểm nào trong ứng dụng. Ví dụ: bạn có thể nhắc người kiểm thử cài đặt các bản dựng mới có sẵn khi khởi động bằng cách đưa checkForUpdate()
vào onAppear(perform:)
của thành phần hiển thị gốc của ứng dụng.
Ví dụ sau đây kiểm tra xem người kiểm thử có bật cảnh báo và có quyền truy cập vào bản dựng mới hay không. Nếu có, một hộp thoại sẽ hiển thị khi có bản dựng để cài đặt:
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];
}
}];
Cấu hình nâng cao
Các phương thức signInTester()
và isTesterSignedIn
giúp bạn linh hoạt hơn trong việc tuỳ chỉnh trải nghiệm đăng nhập của người kiểm thử, nhờ đó trải nghiệm này có thể phù hợp hơn với giao diện của ứng dụng.
Ví dụ sau đây sẽ kiểm tra xem người kiểm thử đã đăng nhập vào tài khoản người kiểm thử Firebase App Distribution hay chưa. Vì vậy, bạn có thể chọn chỉ hiển thị giao diện người dùng đăng nhập cho những người kiểm thử chưa đăng nhập. Sau khi người kiểm thử đăng nhập, bạn có thể gọi checkForUpdate()
để kiểm tra xem người kiểm thử có quyền truy cập vào bản dựng mới hay không.
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
}];
}
Để biết thông tin về các phương thức khác, bao gồm cả signOutTester()
, hãy xem tài liệu tham khảo về App Distribution cho Swift và Objective-C.
Bước 4: Xây dựng và kiểm thử quá trình triển khai
Cuối cùng, hãy tạo ứng dụng và kiểm thử cách triển khai bằng cách phân phối bản dựng cho người kiểm thử bằng bảng điều khiển Firebase.
Hãy truy cập vào Hướng dẫn khắc phục sự cố App Distribution để được trợ giúp về các vấn đề thường gặp, chẳng hạn như:
- Người kiểm thử không nhận được cảnh báo trong ứng dụng
- Người kiểm thử được nhắc đăng nhập vào Google nhiều lần