SDK Android và iOS phân phối ứng dụng Firebase tùy chọn cho phép bạn hiển thị cảnh báo trong ứng dụng cho người thử nghiệm khi có các bản dựng mới của ứng dụng để cài đặt. Hướng dẫn này giải thích cách sử dụng SDK phân phối ứng dụng iOS và Android để tạo và tùy chỉnh cảnh báo bản dựng mới cho người thử nghiệm của bạn.
Trước khi bắt đầu
Nếu bạn chưa có, hãy thêm Firebase vào dự án iOS của bạn .
Bước 1 : Bật API Trình kiểm tra phân phối ứng dụng
Chọn dự án của bạn trong Google Cloud Console .
Trong API người kiểm tra ứng dụng Firebase , nhấp vào Bật .
Bước 2 : Thêm Phân phối ứng dụng vào ứng dụng của bạn
Mở Podfile bạn đã tạo cho dự án (hoặc chạy
pod init
để tạo một tệp), sau đó thêm dòng sau vào bên trong phần đích:pod 'FirebaseAppDistribution'
Trong thư mục của podfile của bạn, chạy
pod install
, sau đó mở tệp.xcworkspace
đã tạo.Mã hóa ID ứng dụng Google của bạn ( chỉ bắt buộc đối với phiên bản iOS 9 và 10 ):
Mã hóa ID ứng dụng Google của bạn
Thêm lược đồ URL
appdistribution-<encoded-google-app-id>
bằng cách đưa đoạn mã vàoInfo.plist file
của bạn (tham khảo tài liệu của Apple để biết hướng dẫn về cách thêm lược đồ URL trong Xcode):<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleTypeRole</key> <string>Editor</string> <key>CFBundleURLSchemes</key> <array> <string>appdistribution-<encoded-google-app-id></string> </array> </dict> </array>
Sau đó, mã hóa ID ứng dụng Google của bạn bằng cách thay thế dấu hai chấm (:) bằng dấu gạch ngang (-). Lưu ý rằng ID ứng dụng Google của bạn nằm trong tệp
GoogleService-Info.plist
của bạn. Ví dụ: nếu ID ứng dụng Google của bạn là:7:77777777777:ios:123456789
ID ứng dụng Google được mã hóa của bạn là:
7-77777777777-ios-123456789
Nhập mô-đun Firebase vào Cấu trúc
App
của bạn hoặcUIApplicationDelegate
:Nhanh
import FirebaseCore
Objective-C
@import FirebaseCore;
Định cấu hình phiên bản được chia sẻ
FirebaseApp
, thường trong trình khởi tạoApp
của bạn hoặc ứng dụng của đại biểuapplication(_:didFinishLaunchingWithOptions:)
phương thức:Nhanh
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
Cuối cùng, biên dịch lại ứng dụng của bạn.
Bước 3 : Định cấu hình cảnh báo trong ứng dụng
SDK phân phối ứng dụng 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 thử nghiệm của bạn: 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 thử nghiệm và cấu hình cảnh báo nâng cao, cho phép bạn có thể tùy chỉnh giao diện người dùng của riêng mình. Trước tiên, chúng tôi khuyên bạn nên sử dụng cấu hình cảnh báo cơ bản nếu bạn mới sử dụng SDK phân phối ứng dụng.
Cấu hình cơ bản
Sử dụng checkForUpdate
để hiển thị hộp thoại cảnh báo kích hoạt được tạo sẵn cho những người thử nghiệm 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 thực hiện chuỗi sau:
Kiểm tra xem người thử nghiệm đã bật cảnh báo chưa bằng cách nhắc họ đăng nhập vào Phân phối ứng dụng bằng tài khoản Google của họ.
Nếu người kiểm tra chưa bật cảnh báo, hãy hiển thị một đoạn hội thoại được tạo sẵn.
Bật cảnh báo là quy trình một lần trên thiết bị thử nghiệm và vẫn tồn tại qua các bản cập nhật ứng dụng của bạn. Cảnh báo vẫn được bật trên thiết bị thử nghiệm cho đến khi ứng dụng được gỡ cài đặt hoặc cho đến khi phương thức
signOutTester
được gọi. Xem tài liệu tham khảo của phương pháp ( 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 thử nghiệm 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 của mình. Ví dụ: bạn có thể nhắc người thử nghiệm cài đặt các bản dựng mới có sẵn khi khởi động bằng cách bao gồm checkForUpdate()
trong onAppear(perform:)
của chế độ xem gốc ứng dụng của bạn.
Ví dụ sau kiểm tra xem người thử nghiệm đã bật cảnh báo và có quyền truy cập vào bản dựng mới hay chưa và nếu có, sẽ hiển thị hộp thoại khi bản dựng có sẵn để cài đặt:
Nhanh
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 tùy chỉnh trải nghiệm đăng nhập của người thử nghiệm, vì vậy nó có thể phù hợp hơn với giao diện ứng dụng của bạn.
Ví dụ sau kiểm tra xem người thử nghiệm đã đăng nhập vào tài khoản người thử nghiệm Phân phối ứng dụng Firebase của họ 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 của mình cho những người thử nghiệm chưa đăng nhập. Sau khi người thử nghiệm đã đăng nhập, bạn có thể gọi checkForUpdate()
để kiểm tra xem người thử nghiệm có quyền truy cập vào bản dựng mới hay không.
Nhanh
// 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 pháp bổ sung, bao gồm signOutTester()
, hãy xem tài liệu tham khảo Phân phối ứng dụng cho Swift và Objective-C .
Bước 4 : Xây dựng và kiểm tra việc triển khai của bạn
Cuối cùng, xây dựng ứng dụng của bạn và kiểm tra việc triển khai của bạn bằng cách phân phối bản dựng cho người thử nghiệm bằng bảng điều khiển Firebase.
Truy cập hướng dẫn Khắc phục sự cố phân phối ứng dụng để được trợ giúp về các sự cố thường gặp, chẳng hạn như:
- Người kiểm tra không nhận được cảnh báo trong ứng dụng
- Người kiểm tra được nhắc đăng nhập vào Google nhiều lần