SDK iOS và Android Firebase App Distribution (không bắt buộc) cho phép bạn hiển thị cảnh 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 App Distribution iOS và Android để tạo và tuỳ chỉnh thông báo bản dựng mới cho người kiểm thử.
Trước khi bắt đầu
Nếu bạn chưa thực hiện, hãy thêm Firebase vào dự án Android.
Bước 1: Bật App Distribution Tester API
Chọn dự án của bạn trong Google Cloud console.
Trong Firebase App Testers API, hãy nhấp vào Bật.
Bước 2: Thêm App Distribution vào ứng dụng của bạn
SDK Android App Distribution bao gồm 2 thư viện:
firebase-appdistribution-api
– Thư viện chỉ có API mà bạn có thể đưa vào tất cả biến thể bản dựng.firebase-appdistribution
– Triển khai SDK đầy đủ (không bắt buộc).
Thư viện chỉ có API cho phép mã của bạn gọi SDK. Các lệnh gọi sẽ không có hiệu lực nếu không có quá trình triển khai SDK đầy đủ.
Khai báo phần phụ thuộc cho SDK Android App Distribution trong tệp Gradle mô-đun (cấp ứng dụng) (thường là <project>/<app-module>/build.gradle.kts
hoặc <project>/<app-module>/build.gradle
). Để tránh đưa chức năng tự cập nhật của quá trình triển khai SDK đầy đủ vào các bản dựng Play, hãy thêm phần phụ thuộc chỉ dành cho API vào tất cả các biến thể bản dựng.
Chỉ thêm chế độ triển khai SDK đầy đủ vào những biến thể chỉ dành riêng cho kiểm thử 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-beta16")
// ADD the full SDK implementation to the "beta" variant only (example)
betaImplementation("com.google.firebase:firebase-appdistribution:16.0.0-beta16")
}
Bạn đang tìm kiếm một mô-đun thư viện dành riêng cho Kotlin? Kể từ 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 thông tin 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 App Distribution cung cấp các cách sau để 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 cảnh báo cơ bản đi kèm với các hộp thoại cập nhật ứng dụng và đăng nhập được tạo sẵn để hiển thị cho người kiểm thử.
- Một cấu hình cảnh báo nâng cao cho phép bạn tuỳ chỉnh giao diện người dùng của riêng mình.
Nếu đây là lần đầu tiên sử dụng App Distribution Android SDK, bạn nên sử dụng Cấu hình cơ bản.
Cấu hình cơ bản
Sử dụng updateIfNewReleaseAvailable
để hiển thị hộp thoại bật cảnh báo được tạo sẵn cho những người kiểm thử 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 này sẽ thực hiện trình tự sau:
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 cảnh báo, phương thức này sẽ nhắc người kiểm thử đăng nhập vào App Distribution bằng Tài khoản Google của họ.
Kiểm tra xem có bản dựng mới nào để người kiểm thử cài đặt hay không.
Hiển thị một cảnh báo được tạo sẵn, nhắc người kiểm thử cập nhật.
Nếu bản dựng mới là một Android App Bundle (AAB), hãy chuyển hướng người kiểm thử đến Google Play để hoàn tất quy trình cập nhật.
Nếu bản dựng mới là một Gói ứng dụng Android (APK), thì SDK sẽ tải bản dựng mới xuống ở chế độ 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 cách sử dụng
NotificationManager
. Bạn cũng có thể thêm chỉ báo tiến trình của riêng mình bằng cách đính kèm trình xử lýonProgressUpdate
vào TaskupdateIfNewReleaseAvailable
.
Bạn có thể gọi updateIfNewReleaseAvailable
tại bất kỳ thời điểm nào trong ứng dụng. Ví dụ: bạn có thể gọi updateIfNewReleaseAvailable
trong phương thức onResume
của hoạt động chính của ứng dụng.
Ví dụ sau đây kiểm tra xem người kiểm thử đã bật thông báo và có quyền truy cập vào bản dựng mới hay chưa. 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ó thể cài đặt:
Kotlin
// 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 nâng cao cho tính năng đăng nhập
Các phương thức signInTester
và isTesterSignedIn
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ử, nhờ đó trải nghiệm của 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 kiểm tra xem người kiểm thử đã đăng nhập vào tài khoản App Distribution của người kiểm thử hay chưa. Điều này cho phép bạn chọn chỉ hiển thị giao diện người dùng (UI) đăng nhập cho những người thử nghiệm chưa đăng nhập. Sau khi người kiểm thử đăng nhập, bạn có thể gọi updateIfNewReleaseAvailable
để kiểm tra xem người kiểm thử có quyền truy cập vào bản dựng mới hay không.
Kotlin
// 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.
});
}
Trong 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
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 nâng cao cho bản cập nhật
Các phương thức checkForNewRelease
và updateApp
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 được tạo sẵn và chỉ báo tiến trình tải xuống để chúng phù hợp hơn với giao diện của ứng dụng.
Xin lưu ý rằng updateApp
không cung cấp thông tin 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 NotificationManager
, một số loại màn hình hiển thị trạng thái trong ứng dụng hoặc một số phương pháp khác.
Ví dụ sau đây 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 checkForNewRelease
và updateApp
, hãy đảm bảo rằng 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
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 từ giao diện người dùng cập nhật của bạn, hãy gọi updateApp()
:
Kotlin
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à kiểm thử việc triển khai
Xây dựng ứ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 kiểm thử bằng bảng điều khiển Firebase.
Hãy truy cập vào App Distribution Hướng dẫn khắc phục sự cố để đượ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 kiểm thử được nhắc đăng nhập vào Google nhiều lần