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

SDK Android và SDK Phân phối ứng dụng Firebase cho phép bạn hiển thị thông báo trong ứng dụng cho người kiểm thử 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 Android và iOS Phân phối ứng dụng để tạo và tuỳ chỉnh thông báo về bản dựng mới cho người kiểm thử.

Trước khi bắt đầu

Thêm Firebase vào dự án Android của bạn nếu bạn chưa thực hiện.

Bước 1: Bật API Người 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 phần Firebase App Tests API (API Người kiểm tra ứng dụng Firebase), hãy nhấp vào Bật.

Bước 2: Thêm tính năng Phân phối ứng dụng vào ứng dụng

SDK Android phân phối ứng dụng bao gồm hai thư viện:

  • firebase-appdistribution-api – Thư viện chỉ API mà bạn có thể đưa vào trong mọi biến thể bản dựng.
  • firebase-appdistribution – Triển khai SDK đầy đủ (không bắt buộc).

Thư viện chỉ API cho phép mã của bạn thực hiện lệnh gọi đến SDK. Các cuộc gọi sẽ có sẽ không có hiệu lực nếu không triển khai SDK đầy đủ.

Khai báo phần phụ thuộc cho SDK Android phân phối ứng dụng trong mô-đun của bạn (cấp ứng dụng) tệp Gradle (thường là <project>/<app-module>/build.gradle.kts hoặc <project>/<app-module>/build.gradle). Cách tránh bao gồm toàn bộ SDK chức năng tự cập nhật của Google Play trong các bản dựng trên Play, thêm phần phụ thuộc thư viện chỉ API vào tất cả biến thể bản dựng. Chỉ thêm triển khai SDK đầy đủ cho các biến thể chỉ dành cho mục đích cho thử nghiệm trước khi phát hành.

dependencies {
    // ADD the API-only library to all variants
    implementation("com.google.firebase:firebase-appdistribution-api:16.0.0-beta13")

    // ADD the full SDK implementation to the "beta" variant only (example)
    betaImplementation("com.google.firebase:firebase-appdistribution:16.0.0-beta13")
}

Bạn đang tìm một mô-đun thư viện dành riêng cho Kotlin? Bắt đầu bằng Bản phát hành tháng 10 năm 2023, cả nhà phát triển Kotlin và Java đều có thể phụ thuộc vào mô-đun thư viện chính (để biết chi tiết, hãy xem Câu hỏi thường gặp về sáng kiến này).

Bước 3: Định cấu hình cảnh báo trong ứng dụng

SDK Android phân phối ứng dụng cung cấp các cách sau đây để thiết lập cảnh báo bản dựng trong ứng dụng cho người kiểm thử:

  • Cấu hình thông báo cơ bản đi kèm với bản cập nhật ứng dụng tạo sẵn và hộp thoại đăng nhập để hiển thị với người kiểm thử.
  • Cấu hình cảnh báo nâng cao cho phép bạn tuỳ chỉnh người dùng của riêng mình .

Nếu đang sử dụng SDK Android Phân phối ứng dụng lần đầu tiên, bạn nên bằng cách sử dụng Cấu hình cơ bản.

Cấu hình cơ bản

Sử dụng updateIfNewReleaseAvailable để hiện cảnh báo bật được tạo sẵn gửi đến những người kiểm thử chưa bật cảnh báo, sau đó kiểm tra xem bản dựng có sẵn. Khi được gọi, phương thức này sẽ thực thi trình tự sau đây:

  1. Kiểm tra xem người kiểm thử đã bật thông báo hay chưa. Nếu người kiểm thử chưa bật thì phương thức này sẽ nhắc người kiểm thử đăng nhập vào Phân phối ứng dụng bằng Tài khoản Google của họ.

  2. Kiểm tra các bản dựng mới có để người kiểm thử cài đặt.

  3. Hiện thông báo được tạo sẵn nhắc người kiểm thử cập nhật.

  4. Nếu bản dựng mới là Android App Bundle (AAB), hãy chuyển hướng người kiểm thử đến Google Play để hoàn tất quá trình cập nhật.

    Nếu bản dựng mới là ứng dụng Android PacKage (APK), SDK tải bản dựng mới xuống trong nền và nhắc người kiểm thử cài đặt khi quá trình tải xuống hoàn tất. SDK gửi thông báo về tiến trình tải xuống cho người dùng bằng NotificationManager. Bạn cũng có thể thêm tiến trình của mình bằng cách đính kèm trình xử lý onProgressUpdate vào Nhiệm vụ updateIfNewReleaseAvailable.

Bạn có thể gọi updateIfNewReleaseAvailable bất cứ lúc nào trong ứng dụng. Để Ví dụ: bạn có thể gọi updateIfNewReleaseAvailable trong onResume phương thức của hoạt động chính của ứng dụng.

Ví dụ sau đây sẽ kiểm tra xem người kiểm thử có bật cảnh báo và có quyền truy cập vào một bản dựng mới. Nếu các điều kiện này được đáp ứng, một hộp thoại sẽ xuất hiện khi bản dựng có sẵn để cài đặt:

Kotlin+KTX

// Copy and paste this into any part of your app - for example, in your main
// activity's onResume method.
val firebaseAppDistribution = FirebaseAppDistribution.getInstance()
firebaseAppDistribution.updateIfNewReleaseAvailable()
    .addOnProgressListener { updateProgress ->
      // (Optional) Implement custom progress updates in addition to
      // automatic NotificationManager updates.
    }
    .addOnFailureListener { e ->
      // (Optional) Handle errors.
      if (e is FirebaseAppDistributionException) {
        when (e.errorCode) {
          Status.NOT_IMPLEMENTED -> {
            // SDK did nothing. This is expected when building for Play.
          }
          else -> {
            // Handle other errors.
          }
        }
      }
    }

Java

// Copy and paste this into any part of your app - for example, in your main
// activity's onResume method.
FirebaseAppDistribution firebaseAppDistribution = FirebaseAppDistribution.getInstance();
firebaseAppDistribution.updateIfNewReleaseAvailable()
    .addOnProgressListener(updateProgress -> {
      // (Optional) Implement custom progress updates in addition to
      // automatic NotificationManager updates.
    })
    .addOnFailureListener(e -> {
      // (Optional) Handle errors.
      if (e instanceof FirebaseAppDistributionException) {
        switch (((FirebaseAppDistributionException)e).getErrorCode()) {
          case NOT_IMPLEMENTED:
            // SDK did nothing. This is expected when building for Play.
            break;
          default:
            // Handle other errors.
            break;
        }
      }
    });

Cấu hình nâng cao

Cấu hình đăng nhập nâng cao

Các phương thức signInTesterisTesterSignedIn giúp bạn linh hoạt hơn trong việc tuỳ chỉnh trải nghiệm đăng nhập của người kiểm thử để người kiểm thử có thể phù hợp hơn với giao diện của ứng dụng.

Ví dụ sau đây sẽ kiểm tra xem người kiểm thử đã đăng nhập vào Tài khoản người kiểm thử Phân phối ứng dụng. Điều này cho phép bạn chọn hiển thị giao diện người dùng đăng nhập (UI) chỉ dành cho người kiểm thử chưa đăng nhập. Sau người kiểm thử đăng nhập, sau đó bạn có thể gọi updateIfNewReleaseAvailable để kiểm tra liệu người kiểm thử có quyền truy cập vào bản dựng mới hay không.

Kotlin+KTX

// Only show sign-in UI if this is the "beta" variant (example).
if (BuildConfig.BUILD_TYPE == "beta" && !firebaseAppDistribution.isTesterSignedIn) {
    // Start your sign-in UI here.
}

// Only check for updates if the tester is already signed in (do not prompt).
if (firebaseAppDistribution.isTesterSignedIn) {
    firebaseAppDistribution.updateIfNewReleaseAvailable().addOnFailureListener {
        // Handle failed update.
    }
}

Java

// Only show sign-in UI if this is the "beta" variant (example).
if (BuildConfig.BUILD_TYPE == "beta" && !firebaseAppDistribution.isTesterSignedIn()) {
    // Start your sign-in UI here.
}

// Only check for updates if the tester is already signed in (do not prompt).
if (firebaseAppDistribution.isTesterSignedIn()) {
    firebaseAppDistribution.updateIfNewReleaseAvailable().addOnFailureListener( e -> {
        // Handle failed update.
    });
}

Trên giao diện người dùng đăng nhập, khi người kiểm thử chọn tiếp tục, hãy gọi signInTester():

Kotlin+KTX

firebaseAppDistribution.signInTester().addOnSuccessListener {
  // Handle successful sign-in.
}.addOnFailureListener {
  // Handle failed sign-in.
});

Java

firebaseAppDistribution.signInTester().addOnSuccessListener( unused -> {
  // Handle successful sign-in.
}).addOnFailureListener(e -> {
  // Handle failed sign-in.
});

Cấu hình cập nhật nâng cao

Các phương thức checkForNewReleaseupdateApp giúp bạn linh hoạt hơn trong việc tuỳ chỉnh thời điểm người kiểm thử được nhắc cập nhật. Bạn cũng có thể tuỳ chỉnh hộp thoại cập nhật tạo sẵn và chỉ báo tiến trình tải xuống để họ có thể phù hợp với giao diện trên ứng dụng của bạn.

Xin lưu ý rằng updateApp không cung cấp chỉ báo về tiến trình tải xuống. Điều này có nghĩa là bạn cần triển khai chỉ báo tiến trình của riêng mình bằng cách sử dụng NotificationManager, một loại hiển thị trạng thái trong ứng dụng hoặc loại hiển thị trạng thái khác phương pháp tiếp cận.

Ví dụ sau đây sẽ kiểm tra xem có bản phát hành mới hay không, sau đó hiển thị một giao diện người dùng tuỳ chỉnh. Trước khi gọi checkForNewReleaseupdateApp, hãy đặt hãy đảm bảo người kiểm thử đã đăng nhập bằng cách sử dụng cấu hình đăng nhập nâng cao.

Kotlin+KTX

firebaseAppDistribution.checkForNewRelease().addOnSuccessListener { release ->
    if (release != null) {
        // New release available. Start your update UI here.
    }
}.addOnFailureListener {
    // Handle failed check for new release. Fails with Status#NOT_IMPLEMENTED
    // if built for Play.
}

Java

firebaseAppDistribution.checkForNewRelease().addOnSuccessListener(release -> {
    if (release != null) {
        // New release available. Start your update UI here.
    }
}).addOnFailureListener(e -> {
    // Handle failed check for new release. Fails with Status#NOT_IMPLEMENTED
    // if built for Play.
});

Khi người kiểm thử chọn tiếp tục cập nhật trong giao diện người dùng của bản cập nhật, hãy gọi updateApp():

Kotlin+KTX

firebaseAppDistribution.updateApp()
    .addOnProgressListener { updateState ->
      // Use updateState to show update progress.
    }

Java

firebaseAppDistribution.updateApp()
    .addOnProgressListener(updateState -> {
      // Use updateState to show update progress.
    });

Bước 4: Xây dựng và thử nghiệm phương thức triển khai

Tạo ứng dụng và kiểm thử việc triển khai 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 của Firebase.

Truy cập vào 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 kiểm thử không nhận được cảnh báo trong ứng dụng
  • Người thử nghiệm được nhắc đăng nhập vào Google nhiều lần