Thông báo cho người thử nghiệm về các bản dựng mới

SDK iOS và Android phân phối ứng dụng Firebase tùy chọn cho phép bạn hiển thị thông báo trong ứng dụng cho người thử nghiệm khi có bản dựng ứng dụng mới để cài đặt. Hướng dẫn này giải thích cách sử dụng SDK iOS và Android của Phân phối ứng dụng để 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 : Kích hoạt API Trình kiểm tra phân phối ứng dụng

  1. Chọn dự án của bạn trong bảng điều khiển Google Cloud .

  2. Trong API người kiểm tra ứng dụng Firebase , hãy 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

  1. 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 phần đích:

    pod 'FirebaseAppDistribution'
  2. Trong thư mục podfile của bạn, hãy chạy pod install , sau đó mở tệp .xcworkspace đã tạo.

  3. Nhập mô-đun Firebase trong cấu trúc App hoặc UIApplicationDelegate của bạn:

    Nhanh

    import FirebaseCore
    import FirebaseAppDistribution
    

    Mục tiêu-C

    @import FirebaseCore;
    @import FirebaseAppDistribution;
    
  4. Định cấu hình phiên bản chia sẻ FirebaseApp trong phương thức application(_:didFinishLaunchingWithOptions:) của đại biểu ứng dụng của bạn:

    Nhanh

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

    Mục tiêu-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  5. Nếu tính năng chuyển đổi bị tắt, hãy chuyển mọi URL đã mở tới SDK phân phối ứng dụng trong quá trình triển khai application(_:open:options:) của bạn:

    Nhanh

    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
    }
    

    Mục tiêu-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. 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 hộp thoại đăng nhập và cập nhật ứng dụng dựng sẵn để 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 tùy chỉnh giao diện người dùng của riêng bạn. Chúng tôi khuyên bạn trước tiên nên sử dụng cấu hình cảnh báo cơ bản nếu bạn chưa quen với 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 bật cảnh báo đượ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 sẽ thực hiện trình tự sau:

  1. Kiểm tra xem người thử nghiệm có bật cảnh báo hay không 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ọ.

  2. Nếu người kiểm tra chưa bật cảnh báo, hãy hiển thị đoạn hội thoại được tạo sẵn.

    Việc bật cảnh báo là quy trình một lần trên thiết bị thử nghiệm và tiếp tục diễn ra trong 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.

  3. Kiểm tra các bản dựng mới có sẵn để người kiểm tra cài đặt.

Bạn có thể gọi checkForUpdate() bất kỳ lúc 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 đưa checkForUpdate() vào onAppear(perform:) của chế độ xem gốc của ứng dụng.

Ví dụ sau đây kiểm tra xem người kiểm tra có bật cảnh báo và có quyền truy cập vào bản dựng mới hay không, đồng thời nếu có, sẽ hiển thị hộp thoại khi bản dựng có sẵn để cài đặt:

Nhanh

Lưu ý: Sản phẩm này không khả dụng trên các mục tiêu macOS, Mac Catalyst, tvOS hoặc 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)
})

Mục tiêu-C

Lưu ý: Sản phẩm này không khả dụng trên các mục tiêu macOS, Mac Catalyst, tvOS hoặc 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];
  }
}];

Cấu hình nâng cao

Các phương thức signInTester()isTesterSignedIn mang lại cho bạn sự 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 để có thể phù hợp hơn với giao diện ứng dụng của bạn.

Ví dụ sau đây 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 kiểm tra có quyền truy cập vào bản dựng mới hay không.

Nhanh

Lưu ý: Sản phẩm này không khả dụng trên các mục tiêu macOS, Mac Catalyst, tvOS hoặc 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
  })
}

Mục tiêu-C

Lưu ý: Sản phẩm này không khả dụng trên các mục tiêu macOS, Mac Catalyst, tvOS hoặc 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
  }];
}

Để 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 SwiftObjective-C .

Bước 4 : Xây dựng và thử nghiệm việc triển khai của bạn

Cuối cùng, hãy xây dựng ứng dụng và kiểm tra quá trình 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.

Hãy 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 vấn đề thường gặp, chẳng hạn như:

  • Người thử nghiệm không nhận được thông báo trong ứng dụng
  • Người kiểm tra được nhắc đăng nhập vào Google nhiều lần