แจ้งผู้ทดสอบเกี่ยวกับบิลด์ใหม่


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

ก่อนเริ่มต้น

หากยังไม่ได้ดำเนินการ ให้เพิ่ม Firebase ลงในโปรเจ็กต์ iOS

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

  1. เลือกโปรเจ็กต์ใน Google Cloud คอนโซล

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

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

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

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

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

    Swift

    import FirebaseCore
    import FirebaseAppDistribution
    

    Objective-C

    @import FirebaseCore;
    @import FirebaseAppDistribution;
    
  4. กำหนดค่าอินสแตนซ์ที่แชร์ FirebaseApp ในเมธอด application(_:didFinishLaunchingWithOptions:) ของ App Delegate

    Swift

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

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  5. หากปิดใช้ Swizzling ให้ส่ง 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;
    }
    
  6. สุดท้ายให้คอมไพล์แอปอีกครั้ง

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

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

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

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

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

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

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

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

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

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

Swift

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

Objective-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() เพื่อตรวจสอบว่าผู้ทดสอบมีสิทธิ์เข้าถึงบิลด์ใหม่หรือไม่

Swift

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

Objective-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(), ดูเอกสารอ้างอิงสำหรับ Swift และ Objective-CApp Distribution

ขั้นตอนที่ 4: สร้างและทดสอบการติดตั้งใช้งาน

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

ดูคู่มือการแก้ปัญหา App Distributionเพื่อขอความช่วยเหลือเกี่ยวกับปัญหาที่พบบ่อย เช่น

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