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 Android và iOS 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ó cá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 phân phối ứng dụng iOS và Android để 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 : Bậ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 người kiểm tra ứng dụng Firebase , 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 bên trong phần đích:

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

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

    Nhanh

    import FirebaseCore
    import FirebaseAppDistribution
    

    Objective-C

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

    Nhanh

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

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  5. Nếu swizzling bị tắt, hãy chuyển mọi URL đã mở đến 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
    }
    

    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. 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 bản cập nhật ứng dụng được tạo sẵn và hộp thoại đăng nhập để 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 có thể tùy chỉnh giao diện người dùng của riêng mình. 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 cảnh báo kích hoạt đượ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 thực hiện chuỗi sau:

  1. Kiểm tra xem người thử nghiệm đã bật cảnh báo 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ị một đoạn hội thoại được tạo 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ẽ tồn tại qua 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 bao gồm checkForUpdate() trong onAppear(perform:) của chế độ xem gốc ứng dụng của bạn.

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)
})

Objective-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 cho phép bạn tùy chỉnh linh hoạt hơn trải nghiệm đăng nhập của người thử nghiệm, vì vậy nó 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ọ 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 thử nghiệm 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
  })
}

Objective-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à kiểm tra việc triển khai của bạn

Cuối cùng, xây dựng ứng dụng của bạn và kiểm tra việc 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 sự cố thường gặp, chẳng hạn như:

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