Catch up on everthing we announced at this year's Firebase Summit. Learn more

Thiết lập cảnh báo bản dựng mới trong ứng dụng với SDK phân phối ứng dụng

SDK 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 để 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 sẵn sàng, thêm căn cứ hỏa lực cho dự án iOS của bạn .

Bước 1: Bật App Distribution Tester API

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

  2. Theo căn cứ hỏa lực App Xét nghiệm API, nhấp Enable.

Bước 2: Thêm ứng dụng phân phối ứng dụng của bạn

Sử dụng Trình quản lý gói Swift để cài đặt và quản lý các phần phụ thuộc của Firebase.

  1. Trong Xcode, với dự án ứng dụng của bạn mở, điều hướng tới File> Swift gói> Thêm gói phụ thuộc.
  2. Khi được nhắc, hãy thêm kho lưu trữ SDK nền tảng Apple Firebase:
  3.   https://github.com/firebase/firebase-ios-sdk
      
  4. Chọn thư viện Phân phối ứng dụng.
  5. Khi hoàn tất, Xcode sẽ tự động bắt đầu giải quyết và tải xuống các phần phụ thuộc của bạn trong nền.

Tiếp theo, thực hiện một vài bước cấu hình:

  1. Mã hóa ID ứng dụng Google của bạn (bắt buộc chỉ cho các phiên bản iOS 9 và 10):

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

    Thêm appdistribution-<encoded-google-app-id> thức truy cập URL bằng cách bao gồm các đoạn mã trong của bạn Info.plist file (tham khảo tài liệu hướng dẫn của Apple để được hướng dẫn về cách thêm các thức truy cập 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 ứng dụng ID Google của bạn nằm ở bạn GoogleService-Info.plist tập tin. 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
  2. Nhập module căn cứ hỏa lực trong bạn UIApplicationDelegate :

    Nhanh

    Lưu ý: Sản phẩm này không có sẵn trên hệ điều hành MacOS, Mac Catalyst, tvOS hoặc mục tiêu watchos.

    import Firebase
    

    Objective-C

    Lưu ý: Sản phẩm này không có sẵn trên hệ điều hành MacOS, Mac Catalyst, tvOS hoặc mục tiêu watchos.

    @import Firebase;
    
  3. Cấu hình một FirebaseApp chia sẻ Ví dụ, điển hình là trong ứng dụng của bạn application:didFinishLaunchingWithOptions: phương pháp:

    Nhanh

    Lưu ý: Sản phẩm này không có sẵn trên hệ điều hành MacOS, Mac Catalyst, tvOS hoặc mục tiêu watchos.

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

    Objective-C

    Lưu ý: Sản phẩm này không có sẵn trên hệ điều hành MacOS, Mac Catalyst, tvOS hoặc mục tiêu watchos.

    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  4. Cuối cùng, biên dịch lại ứng dụng của bạn.

Bước 3: Cấu hình các 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 được tạo 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 (UI) 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ị một pre-xây dựng cho phép cảnh báo đối thoại để kiểm tra người chưa kích hoạt cảnh báo, và sau đó kiểm tra nếu một xây dựng mới có sẵn. 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 kích hoạt trên thiết bị thử nghiệm cho đến khi một trong hai ứng dụng được gỡ cài đặt, hoặc cho đến khi signOutTester phương pháp được gọi. Xem tài liệu của phương pháp tham khảo ( 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ể bao gồm checkForUpdate tại bất kỳ điểm nào trong ứng dụng của bạn. Ví dụ, bạn có thể nhắc thử nghiệm của bạn để cài đặt mới có sẵn được xây dựng lúc khởi động bằng cách bao gồm checkForUpdate trong viewDidAppear của UIViewController .

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 có sẵn trên hệ điều hành MacOS, Mac Catalyst, tvOS hoặc mục tiêu watchos.
AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
  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 có sẵn trên hệ điều hành MacOS, Mac Catalyst, tvOS hoặc mục tiêu watchos.
[[FIRAppDistribution appDistribution]
  checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
                                 NSError *_Nullable error) {
  if (error) {
    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Check For Update"
message:[NSString stringWithFormat:@"Error during tester sign in! %@", error.localizedDescription]
preferredStyle:UIAlertControllerStyleAlert];

    UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action) {}];

    [alert addAction:okAction];
    [self presentViewController:alert animated:YES completion:nil];

    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 pháp signInTesterisTesterSignedIn cung cấp cho bạn linh hoạt hơn tùy đăng nhập trong kinh nghiệm của tester của bạn, vì vậy nó tốt hơn có thể phù hợp với giao diện của ứng dụng.

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 thử có quyền truy cập vào một xây dựng mới.

Nhanh

Lưu ý: Sản phẩm này không có sẵn trên hệ điều hành MacOS, Mac Catalyst, tvOS hoặc mục tiêu 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 có sẵn trên hệ điều hành MacOS, Mac Catalyst, tvOS hoặc mục tiêu 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ề phương pháp bổ sung, bao gồm signOutTester , 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 thực hiện của bạn

Cuối cùng, xây dựng ứng dụng của bạn và kiểm tra thực hiện bằng cách phân phối xây dựng để thử nghiệm bằng cách sử dụng căn cứ hỏa lực console.

Truy cập vào hướng dẫn khắc phục sự cố App phân phối để được giúp đỡ với các vấn đề chung, 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