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


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

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

เพิ่ม 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:) ของตัวแทนแอป

    Swift

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

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  5. หากปิดใช้การสลับ ให้ส่ง 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: กำหนดค่าการแจ้งเตือนในแอป

App Distribution SDK มี 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() ได้ที่เอกสารอ้างอิง App Distribution สำหรับ Swift และ Objective-C

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

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

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

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