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

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. Mã hóa ID ứng dụng Google của bạn ( chỉ bắt buộc đối với phiên bản iOS 9 và 10 ):

    Mã hóa ID ứng dụng Google của bạn

    Thêm lược đồ URL appdistribution-<encoded-google-app-id> bằng cách đưa đoạn mã vào Info.plist file của bạn (tham khảo tài liệu của Apple để biết hướng dẫn về cách thêm lược đồ URL trong Xcode):

    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>appdistribution-<encoded-google-app-id></string>
            </array>
        </dict>
    </array>
    

    Sau đó, mã hóa ID ứng dụng Google của bạn bằng cách thay thế dấu hai chấm (:) bằng dấu gạch ngang (-). Lưu ý rằng ID ứng dụng Google của bạn nằm trong tệp GoogleService-Info.plist của bạn. Ví dụ: nếu ID ứng dụng Google của bạn là:

    7:77777777777:ios:123456789

    ID ứng dụng Google được mã hóa của bạn là:

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

    Nhanh

    import FirebaseCore
    

    Objective-C

    @import FirebaseCore;
    
  5. Định cấu hình phiên bản được chia sẻ FirebaseApp , thường trong trình khởi tạo App của bạn hoặc ứng dụng của đại biểu application(_:didFinishLaunchingWithOptions:) phương thức:

    Nhanh

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

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  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à vẫn 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 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, 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