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

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

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

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

  2. Trong API trình 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), sau đó thêm dòng sau vào phần đích:

    pod 'FirebaseAppDistribution'
  2. Trong thư mục chứa tệp 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 một phiên bản chia sẻ FirebaseApp trong phương thức application(_:didFinishLaunchingWithOptions:) của ứ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 swizzling bị tắt, hãy chuyển bất kỳ URL đã mở nào tới SDK phân phối ứng dụng trong quá trình triển khai application(_:open:options:) :

    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. Trước tiên, chúng tôi khuyên bạn nên sử dụng cấu hình cảnh báo cơ bản nếu bạn mới sử dụng 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 dựng 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 kiểm tra đã bật cảnh báo hay chưa 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ị hộp thoại dựng sẵn.

    Bật cảnh báo là quy trình một lần trên thiết bị thử nghiệm và sẽ tiếp tục 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 thử nghiệm cài đặt.

Bạn có thể gọi checkForUpdate() tại bất kỳ thời điểm 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 kiểm tra xem người thử nghiệm đã bật cảnh báo và có quyền truy cập vào bản dựng mới hay chưa và 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 giúp bạn 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 để trải nghiệm này có thể phù hợp hơn với giao diện ứng dụng của bạn.

Ví dụ sau 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ọ 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 về Phân phối ứng dụng dành cho SwiftObjective-C .

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

Cuối cùng, xây dựng ứng dụng của bạn và thử nghiệm 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.

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 đề phổ biến, chẳng hạn như:

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