Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

แจ้งผู้ทดสอบเกี่ยวกับงานสร้างใหม่

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

นดรอยด์

SDK ของ Firebase App Distribution สำหรับ iOS และ Android ให้คุณแสดงการแจ้งเตือนในแอปแก่ผู้ทดสอบเมื่อแอปเวอร์ชันใหม่พร้อมให้ติดตั้ง คู่มือนี้จะอธิบายวิธีใช้ App Distribution iOS และ Android SDK เพื่อสร้างและปรับแต่งการแจ้งเตือนบิวด์ใหม่สำหรับผู้ทดสอบของคุณ

ก่อนที่คุณจะเริ่มต้น

หากคุณยังไม่ได้ดำเนินการ ให้ เพิ่ม Firebase ในโครงการ iOS ของคุณ

ขั้นตอนที่ 1 : เปิดใช้งาน App Distribution Tester API

  1. เลือกโครงการของคุณใน Google Cloud Console

  2. ใต้ Firebase App Testers API ให้คลิก เปิดใช้

ขั้นตอนที่ 2 : เพิ่ม App Distribution ในแอพของคุณ

  1. เปิด Podfile ที่คุณสร้างขึ้นสำหรับโปรเจ็กต์ (หรือเรียกใช้ pod init เพื่อสร้าง) จากนั้นเพิ่มบรรทัดต่อไปนี้ในส่วนเป้าหมาย:

    pod 'FirebaseAppDistribution'
  2. ในไดเร็กทอรีของ podfile ให้เรียกใช้ pod install จากนั้นเปิดไฟล์ . .xcworkspace ที่สร้างขึ้น

  3. นำเข้าโมดูล Firebase ใน App struct หรือ UIApplicationDelegate :

    สวิฟต์

    import FirebaseCore
    import FirebaseAppDistribution
    

    วัตถุประสงค์-C

    @import FirebaseCore;
    @import FirebaseAppDistribution;
    
  4. กำหนดค่าอินสแตนซ์ที่ใช้ร่วมกันของ FirebaseApp ในแอปพลิเคชันผู้รับมอบสิทธิ์แอปของคุณ application(_:didFinishLaunchingWithOptions:) วิธีการ:

    สวิฟต์

    // Use Firebase library to configure APIs
    FirebaseApp.configure()
    

    วัตถุประสงค์-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  5. หากปิดใช้งาน swizzling ให้ส่ง URL ที่เปิดอยู่ไปยัง App Distribution SDK ในการติดตั้ง application(_:open:options:) :

    สวิฟต์

    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
    }
    

    วัตถุประสงค์-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;
    }
    
  6. สุดท้าย คอมไพล์แอปของคุณใหม่

ขั้นตอนที่ 3 : กำหนดค่าการแจ้งเตือนในแอป

App Distribution SDK มีสองวิธีในการตั้งค่าการแจ้งเตือนบิวด์ในแอปสำหรับผู้ทดสอบของคุณ: การกำหนดค่าการแจ้งเตือนพื้นฐาน ซึ่งมาพร้อมกับการอัปเดตแอปที่สร้างไว้ล่วงหน้าและกล่องโต้ตอบการลงชื่อเข้าใช้เพื่อแสดงให้ผู้ทดสอบเห็น และการกำหนดค่าการแจ้งเตือนขั้นสูง ซึ่งอนุญาต คุณสามารถปรับแต่งส่วนต่อประสานผู้ใช้ของคุณเองได้ เราขอแนะนำให้ใช้การกำหนดค่าการแจ้งเตือนพื้นฐานก่อน หากคุณยังใหม่กับ App Distribution SDK

การกำหนดค่าพื้นฐาน

ใช้ checkForUpdate เพื่อแสดงกล่องโต้ตอบการเปิดใช้งานการแจ้งเตือนที่สร้างไว้ล่วงหน้าแก่ผู้ทดสอบที่ยังไม่ได้เปิดใช้งานการแจ้งเตือน จากนั้นตรวจสอบว่ามีการสร้างใหม่หรือไม่ เมื่อเรียก เมธอดจะแสดงลำดับต่อไปนี้:

  1. ตรวจสอบว่าผู้ทดสอบเปิดใช้งานการแจ้งเตือนหรือไม่โดยแจ้งให้ลงชื่อเข้าใช้ App Distribution ด้วยบัญชี Google ของตน

  2. หากผู้ทดสอบยังไม่ได้เปิดใช้งานการแจ้งเตือน ให้แสดงกล่องโต้ตอบที่สร้างไว้ล่วงหน้า

    การเปิดใช้งานการแจ้งเตือนเป็นกระบวนการแบบครั้งเดียวในอุปกรณ์ทดสอบและคงอยู่ตลอดการอัปเดตแอปของคุณ การแจ้งเตือนยังคงเปิดใช้งานบนอุปกรณ์ทดสอบจนกว่าจะถอนการติดตั้งแอปหรือจนกว่าจะมีการเรียกใช้เมธอด signOutTester ดูเอกสารอ้างอิงของวิธีการ ( Swift หรือ Objective-C ) สำหรับข้อมูลเพิ่มเติม

  3. ตรวจสอบการสร้างใหม่ที่มีอยู่เพื่อให้ผู้ทดสอบติดตั้ง

คุณสามารถเรียกใช้ checkForUpdate() ได้ทุกเมื่อในแอปของคุณ ตัวอย่างเช่น คุณสามารถแจ้งให้ผู้ทดสอบของคุณติดตั้งบิวด์ใหม่เมื่อเริ่มต้นโดยการรวม checkForUpdate() ใน onAppear(perform:) ของมุมมองรูทของแอป

ตัวอย่างต่อไปนี้จะตรวจสอบว่าผู้ทดสอบเปิดใช้งานการแจ้งเตือนและมีสิทธิ์เข้าถึงบิวด์ใหม่หรือไม่ และหากใช่ จะแสดงกล่องโต้ตอบเมื่อบิวด์พร้อมให้ติดตั้ง:

สวิฟต์

หมายเหตุ: ผลิตภัณฑ์นี้ไม่พร้อมใช้งานบนเป้าหมาย macOS, Mac Catalyst, tvOS หรือ watchOS
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)
})

วัตถุประสงค์-C

หมายเหตุ: ผลิตภัณฑ์นี้ไม่พร้อมใช้งานบนเป้าหมาย macOS, Mac Catalyst, tvOS หรือ watchOS
[[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() เพื่อตรวจสอบว่าผู้ทดสอบสามารถเข้าถึงบิลด์ใหม่ได้หรือไม่

สวิฟต์

หมายเหตุ: ผลิตภัณฑ์นี้ไม่พร้อมใช้งานบนเป้าหมาย macOS, Mac Catalyst, tvOS หรือ watchOS
// 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
  })
}

วัตถุประสงค์-C

หมายเหตุ: ผลิตภัณฑ์นี้ไม่พร้อมใช้งานบนเป้าหมาย macOS, Mac Catalyst, tvOS หรือ watchOS
// 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 : สร้างและทดสอบการใช้งานของคุณ

สุดท้าย สร้างแอปและทดสอบการใช้งานโดย แจกจ่ายบิล ด์ให้กับผู้ทดสอบโดยใช้คอนโซล Firebase

ไปที่ คู่มือการแก้ไขปัญหาการกระจายแอป สำหรับความช่วยเหลือเกี่ยวกับปัญหาทั่วไป เช่น:

  • ผู้ทดสอบไม่ได้รับการแจ้งเตือนในแอป
  • ผู้ทดสอบได้รับแจ้งให้ลงชื่อเข้าใช้ Google มากกว่าหนึ่งครั้ง