SDK สำหรับ iOS และ Android Firebase App Distribution ที่ไม่บังคับให้คุณแสดง การแจ้งเตือนในแอปถึงผู้ทดสอบเมื่อแอปเวอร์ชันใหม่พร้อมใช้งานสำหรับ ติดตั้ง คำแนะนำนี้จะอธิบายวิธีใช้ App Distribution SDK สำหรับ iOS และ Android เพื่อสร้างและปรับแต่งการแจ้งเตือนบิลด์ใหม่สำหรับผู้ทดสอบ
ก่อนเริ่มต้น
เพิ่ม Firebase ลงในโปรเจ็กต์ iOS หากยังไม่ได้ทำ
ขั้นตอนที่ 1: เปิดใช้ App Distribution Tester API
เลือกโปรเจ็กต์ใน คอนโซล Google Cloud
คลิกเปิดใช้ในส่วน Firebase App Testers API
ขั้นตอนที่ 2: เพิ่ม App Distribution ลงในแอป
เปิด Podfile ที่คุณสร้างสำหรับโปรเจ็กต์ (หรือเรียกใช้
pod init
เพื่อสร้าง 1) จากนั้นเพิ่มบรรทัดต่อไปนี้ภายในส่วนเป้าหมายpod 'FirebaseAppDistribution'
ในไดเรกทอรีของ Podfile ให้เรียกใช้
pod install
จากนั้นเปิด สร้างไฟล์.xcworkspace
ไฟล์แล้วนำเข้าโมดูล Firebase ในโครงสร้าง
App
หรือUIApplicationDelegate
ดังนี้Swift
import FirebaseCore import FirebaseAppDistribution
Objective-C
@import FirebaseCore; @import FirebaseAppDistribution;
กำหนดค่าอินสแตนซ์
FirebaseApp
ที่แชร์ร่วมกันในแอปที่ได้รับมอบสิทธิ์ เมธอดapplication(_:didFinishLaunchingWithOptions:)
:Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
หากปิดใช้ Swinging ให้ส่ง URL ที่เปิดทั้งหมดไปยัง App Distribution SDK ใน การใช้งาน
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; }
สุดท้าย ให้คอมไพล์แอปอีกครั้ง
ขั้นตอนที่ 3: กำหนดค่าการแจ้งเตือนในแอป
SDK App Distribution มี 2 วิธีในการตั้งค่าการแจ้งเตือนบิลด์ในแอปสำหรับ ผู้ทดสอบ: การกำหนดค่าการแจ้งเตือนพื้นฐาน ซึ่งมาพร้อมกับการอัปเดตแอปที่สร้างไว้ล่วงหน้า กล่องโต้ตอบการลงชื่อเข้าใช้เพื่อแสดงต่อผู้ทดสอบ รวมถึงการแจ้งเตือนขั้นสูง การกำหนดค่าที่ช่วยให้คุณปรับแต่งอินเทอร์เฟซผู้ใช้ของคุณเองได้ พ ขอแนะนำให้ใช้การกำหนดค่าการแจ้งเตือนพื้นฐานก่อนถ้าคุณเพิ่งเริ่มใช้ SDK App Distribution
การกำหนดค่าพื้นฐาน
ใช้ checkForUpdate
เพื่อแสดงกล่องโต้ตอบการเปิดใช้งานการแจ้งเตือนที่สร้างไว้ล่วงหน้าเพื่อ
ผู้ทดสอบที่ยังไม่ได้เปิดใช้การแจ้งเตือน แล้วตรวจสอบว่าบิลด์ใหม่
พร้อมใช้งาน เมื่อเรียกใช้ เมธอดจะออกลำดับต่อไปนี้
ตรวจสอบว่าผู้ทดสอบเปิดใช้การแจ้งเตือนไว้หรือไม่โดยแจ้งให้ลงชื่อเข้าใช้ App Distribution ด้วยบัญชี Google ของตัวเอง
หากผู้ทดสอบยังไม่ได้เปิดใช้การแจ้งเตือน ระบบจะแสดงกล่องโต้ตอบที่กำหนดไว้ล่วงหน้า
การเปิดใช้การแจ้งเตือนเป็นกระบวนการที่ต้องทำเพียงครั้งเดียวในอุปกรณ์ทดสอบและจะคงอยู่ตลอดไป การอัปเดตแอปของคุณ การแจ้งเตือนจะยังคงเปิดใช้ในอุปกรณ์ทดสอบจนถึง ถอนการติดตั้งแอปแล้ว หรือจนกว่าจะมีการเรียกใช้เมธอด
signOutTester
ดูเอกสารอ้างอิงของเมธอด (Swift หรือ Objective-C) เพื่อดูข้อมูลเพิ่มเติมตรวจสอบบิลด์ที่เพิ่งพร้อมใช้งานเพื่อให้ผู้ทดสอบติดตั้ง
คุณเรียกใช้ checkForUpdate()
ได้ทุกเมื่อในแอป ตัวอย่างเช่น คุณสามารถ
สามารถแจ้งให้ผู้ทดสอบติดตั้งบิลด์ใหม่ที่พร้อมใช้งานเมื่อเริ่มต้นระบบได้โดย
รวมถึง checkForUpdate()
ใน onAppear(perform:)
ของรากของแอป
ตัวอย่างต่อไปนี้จะตรวจสอบว่าผู้ทดสอบเปิดใช้การแจ้งเตือนหรือไม่ และมีสิทธิ์เข้าถึงบิลด์ใหม่ ถ้าใช่ จะแสดงกล่องโต้ตอบเมื่อ บิลด์ที่พร้อมให้ติดตั้ง:
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 สำหรับ
สวิฟต์
และ Objective-C
ขั้นตอนที่ 4: สร้างและทดสอบการใช้งาน
สุดท้าย ให้สร้างแอปและทดสอบการใช้งานโดย เพื่อแจกจ่ายงานสร้าง แก่ผู้ทดสอบโดยใช้คอนโซล Firebase
เข้าชม คู่มือการแก้ปัญหา App Distribution เพื่อรับความช่วยเหลือเกี่ยวกับปัญหาทั่วไป เช่น
- ผู้ทดสอบไม่ได้รับการแจ้งเตือนในแอป
- ผู้ทดสอบได้รับแจ้งให้ลงชื่อเข้าใช้ Google มากกว่า 1 ครั้ง