Bạn có thể tích hợp App Distribution vào quy trình tạo bản dựng Android bằng cách sử dụng trình bổ trợ App Distribution Gradle. Trình bổ trợ này cho phép bạn chỉ định người kiểm thử và ghi chú phát hành trong tệp Gradle của ứng dụng, nhờ đó bạn có thể định cấu hình việc phân phối cho các loại bản dựng và biến thể khác nhau của ứng dụng.
Hướng dẫn này mô tả cách phân phối APK cho người kiểm thử bằng cách sử dụng trình bổ trợ Gradle App Distribution.
Trước khi bắt đầu
Nếu chưa thực hiện, hãy thêm Firebase vào dự án Android.
Nếu không sử dụng bất kỳ sản phẩm nào khác của Firebase, bạn chỉ cần tạo một dự án và đăng ký ứng dụng của mình. Tuy nhiên, nếu quyết định sử dụng các sản phẩm khác trong tương lai, hãy nhớ hoàn tất tất cả các bước trên trang được liên kết ở trên.
Bước 1. Thiết lập dự án Android
Trong tệp Gradle cấp gốc (cấp dự án) (
<project>/build.gradle.kts
hoặc<project>/build.gradle
), hãy thêm trình bổ trợ Gradle App Distribution làm phần phụ thuộc:Kotlin
plugins { // ... id("com.android.application") version "7.3.0" apply false // Make sure that you have the Google services Gradle plugin dependency id("com.google.gms.google-services") version "4.4.3" apply false // Add the dependency for the App Distribution Gradle plugin id("com.google.firebase.appdistribution") version "5.1.1" apply false }
Groovy
plugins { // ... id 'com.android.application' version '7.3.0' apply false // Make sure that you have the Google services Gradle plugin dependency id 'com.google.gms.google-services' version '4.4.3' apply false // Add the dependency for the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' version '5.1.1' apply false }
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
), hãy thêm trình bổ trợ Gradle App Distribution:Kotlin
plugins { id("com.android.application") // Make sure that you have the Google services Gradle plugin id("com.google.gms.google-services") // Add the App Distribution Gradle plugin id("com.google.firebase.appdistribution") }
Groovy
plugins { id 'com.android.application' // Make sure that you have the Google services Gradle plugin id 'com.google.gms.google-services' // Add the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' }
Nếu bạn đang sử dụng một tường lửa hoặc proxy của công ty, hãy thêm thuộc tính hệ thống Java sau đây để cho phép App Distribution tải bản phân phối của bạn lên Firebase:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
Bước 2. Xác thực bằng Firebase
Trước khi có thể sử dụng trình bổ trợ Gradle, trước tiên, bạn phải xác thực bằng dự án Firebase theo một trong những cách sau. Theo mặc định, trình bổ trợ Gradle sẽ tìm thông tin đăng nhập từ CLI Firebase nếu không sử dụng phương thức xác thực nào khác.
Bước 3. Định cấu hình các thuộc tính phân phối
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
), hãy định cấu hình App Distribution bằng cách thêm ít nhất một phần firebaseAppDistribution
.
Ví dụ: để phân phối bản dựng release
cho người kiểm thử, hãy làm theo các hướng dẫn sau:
Kotlin
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution android { // ... buildTypes { getByName("release") { firebaseAppDistribution { artifactType = "APK" releaseNotesFile = "/path/to/releasenotes.txt" testers = "ali@example.com, bri@example.com, cal@example.com" } } } // ... }
Groovy
android { // ... buildTypes { release { firebaseAppDistribution { artifactType="APK" releaseNotesFile="/path/to/releasenotes.txt" testers="ali@example.com, bri@example.com, cal@example.com" } } } // ... }
Bạn có thể định cấu hình App Distribution cho các loại bản dựng và phiên bản sản phẩm.
Ví dụ: để phân phối các bản dựng debug
và release
trong các phiên bản sản phẩm "demo" và "full", hãy làm theo hướng dẫn sau:
Kotlin
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution android { // ... buildTypes { getByName("debug") {...} getByName("release") {...} } flavorDimensions += "version" productFlavors { create("demo") { dimension = "version" firebaseAppDistribution { releaseNotes = "Release notes for demo version" testers = "demo@testers.com" } } create("full") { dimension = "version" firebaseAppDistribution { releaseNotes = "Release notes for full version" testers = "full@testers.com" } } } // ... }
Groovy
android { // ... buildTypes { debug {...} release {...} } flavorDimensions "version" productFlavors { demo { dimension "version" firebaseAppDistribution { releaseNotes="Release notes for demo version" testers="demo@testers.com" } } full { dimension "version" firebaseAppDistribution { releaseNotes="Release notes for full version" testers="full@testers.com" } } } // ... }
Sử dụng các tham số sau để định cấu hình chế độ phân phối:
App Distribution Tham số bản dựng | |
---|---|
appId
|
Mã ứng dụng Firebase của ứng dụng. Chỉ bắt buộc nếu bạn chưa cài đặt trình bổ trợ Google Services Gradle. Bạn có thể tìm thấy mã ứng dụng trong tệp appId="1:1234567890:android:321abc456def7890" |
serviceCredentialsFile
|
Đường dẫn đến tệp JSON khoá riêng tư của tài khoản dịch vụ. Chỉ bắt buộc nếu bạn sử dụng phương thức xác thực tài khoản dịch vụ. |
artifactType
|
Chỉ định loại tệp của ứng dụng. Có thể đặt thành |
artifactPath
|
Đường dẫn tuyệt đối đến tệp APK hoặc AAB mà bạn muốn tải lên. |
releaseNotes hoặc releaseNotesFile |
Ghi chú phát hành cho bản dựng này. Bạn có thể chỉ định trực tiếp ghi chú phát hành hoặc đường dẫn đến một tệp văn bản thuần tuý. |
testers hoặc testersFile |
Địa chỉ email của những người kiểm thử mà bạn muốn phân phối bản dựng. Bạn có thể chỉ định người kiểm thử dưới dạng một danh sách địa chỉ email được phân tách bằng dấu phẩy: testers="ali@example.com, bri@example.com, cal@example.com" Hoặc bạn có thể chỉ định đường dẫn đến một tệp chứa danh sách địa chỉ email được phân tách bằng dấu phẩy: testersFile="/path/to/testers.txt" |
groups hoặc groupsFile |
Các nhóm người kiểm thử mà bạn muốn phân phối bản dựng (xem phần Quản lý người kiểm thử).
Các nhóm được chỉ định bằng Bạn có thể chỉ định các nhóm dưới dạng một danh sách các bí danh nhóm được phân tách bằng dấu phẩy: groups="qa-team, android-testers" Hoặc bạn có thể chỉ định đường dẫn đến một tệp chứa danh sách các bí danh nhóm được phân tách bằng dấu phẩy: groupsFile="/path/to/tester-groups.txt" |
testDevices hoặc testDevicesFile |
Các loại phân phối sau đây là một phần của Tính năng thử nghiệm beta dành cho người kiểm thử tự động. Các thiết bị kiểm thử mà bạn muốn phân phối bản dựng (xem phần Kiểm thử tự động). Bạn có thể chỉ định các thiết bị kiểm thử dưới dạng danh sách thông số kỹ thuật của thiết bị được phân tách bằng dấu chấm phẩy: testDevices="model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait" Hoặc bạn có thể chỉ định đường dẫn đến một tệp chứa danh sách các thông số kỹ thuật của thiết bị được phân tách bằng dấu chấm phẩy: testDevicesFile="/path/to/testDevices.txt" |
testUsername |
Tên người dùng để đăng nhập tự động sẽ được dùng trong các kiểm thử tự động. |
testPassword hoặc testPasswordFile |
Mật khẩu để đăng nhập tự động sẽ được dùng trong các kiểm thử tự động. Hoặc bạn có thể chỉ định đường dẫn đến một tệp văn bản thuần tuý chứa mật khẩu: testPasswordFile="/path/to/testPassword.txt" |
testUsernameResource |
Tên tài nguyên cho trường tên người dùng để đăng nhập tự động sẽ được dùng trong các kiểm thử tự động. |
testPasswordResource |
Tên tài nguyên cho trường mật khẩu để đăng nhập tự động sẽ được dùng trong các kiểm thử tự động. |
testNonBlocking |
Chạy kiểm thử tự động không đồng bộ. Truy cập vào bảng điều khiển của Firebase để xem kết quả kiểm thử tự động. |
stacktrace
|
In dấu vết ngăn xếp cho các trường hợp ngoại lệ của người dùng. Điều này rất hữu ích khi gỡ lỗi. |
Bước 4. Phân phối ứng dụng cho người kiểm thử
Cuối cùng, để đóng gói ứng dụng kiểm thử và mời người kiểm thử, hãy tạo các mục tiêu
BUILD-VARIANT
vàappDistributionUploadBUILD-VARIANT
bằng trình bao bọc Gradle của dự án, trong đó BUILD-VARIANT là loại sản phẩm và loại bản dựng không bắt buộc mà bạn đã định cấu hình ở bước trước. Để biết thêm thông tin về phiên bản sản phẩm, hãy xem bài viết Định cấu hình biến thể bản dựng.Ví dụ: để phân phối ứng dụng bằng biến thể bản dựng
release
, hãy chạy lệnh sau:./gradlew assembleRelease appDistributionUploadRelease
Hoặc nếu bạn xác thực bằng Tài khoản Google và không cung cấp thông tin đăng nhập trong tệp bản dựng Gradle, hãy thêm biến
FIREBASE_TOKEN
:export FIREBASE_TOKEN=1/a1b2c3d4e5f67890 ./gradlew --stop // Only needed for environment variable changes ./gradlew assembleRelease appDistributionUploadRelease
Bạn cũng có thể ghi đè các giá trị được đặt trong tệp
build.gradle
bằng cách truyền các đối số dòng lệnh dưới dạng--<property-name>=<property-value>
. Ví dụ:Cách tải bản gỡ lỗi lên App Distribution:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="APK"
Cách mời thêm người kiểm thử hoặc xoá người kiểm thử hiện có khỏi dự án Firebase:
./gradlew appDistributionAddTesters --projectNumber=<project_number> --emails="anothertester@email.com, moretesters@email.com"
./gradlew appDistributionRemoveTesters --projectNumber=<project_number> --emails="anothertester@email.com, moretesters@email.com"
Sau khi thêm người kiểm thử vào dự án Firebase, bạn có thể thêm họ vào từng bản phát hành. Những người thử nghiệm bị xoá sẽ không còn quyền truy cập vào các bản phát hành trong dự án của bạn nữa, nhưng vẫn có thể giữ quyền truy cập vào các bản phát hành của bạn trong một khoảng thời gian.
Bạn cũng có thể chỉ định người kiểm thử bằng cách sử dụng
--file="/path/to/testers.txt"
thay vì--emails
.Các tác vụ
appDistributionAddTesters
vàappDistributionRemoveTesters
cũng chấp nhận các đối số sau:projectNumber
: Số dự án Firebase của bạn.serviceCredentialsFile
: Đường dẫn đến tệp thông tin đăng nhập dịch vụ của Google. Đây là đối số mà thao tác tải lên sử dụng.
Trình bổ trợ Gradle sẽ xuất ra các đường liên kết sau khi bạn tải bản phát hành lên. Các đường liên kết này giúp bạn quản lý các tệp nhị phân và đảm bảo người kiểm thử cũng như các nhà phát triển khác có bản phát hành phù hợp:
firebase_console_uri
– Đường liên kết đến bảng điều khiển Firebase hiển thị một bản phát hành duy nhất. Bạn có thể chia sẻ đường liên kết này với các nhà phát triển khác trong tổ chức của mình.testing_uri
– Đường liên kết đến bản phát hành trong trải nghiệm của người kiểm thử (ứng dụng gốc Android) cho phép người kiểm thử xem ghi chú phát hành và cài đặt ứng dụng trên thiết bị của họ. Người kiểm thử cần có quyền truy cập vào bản phát hành để sử dụng đường liên kết này.binary_download_uri
– Một đường liên kết đã ký để tải xuống và cài đặt trực tiếp tệp nhị phân của ứng dụng (tệp APK hoặc AAB). Đường liên kết sẽ hết hạn sau một giờ.
Sau khi bạn phân phối bản dựng, bản dựng đó sẽ xuất hiện trong trang tổng quan App Distribution của bảng điều khiển Firebase trong 150 ngày (5 tháng). Khi bản dựng còn 30 ngày nữa là hết hạn, thông báo hết hạn sẽ xuất hiện trong cả bảng điều khiển và danh sách bản dựng của người kiểm thử trên thiết bị kiểm thử.
Những người kiểm thử chưa được mời kiểm thử ứng dụng sẽ nhận được lời mời qua email để bắt đầu, còn những người kiểm thử hiện tại sẽ nhận được thông báo qua email rằng bản dựng mới đã sẵn sàng để kiểm thử (hãy đọc hướng dẫn thiết lập cho người kiểm thử để biết hướng dẫn về cách cài đặt ứng dụng kiểm thử). Bạn có thể theo dõi trạng thái của từng người kiểm thử (họ đã chấp nhận lời mời hay chưa và họ đã tải ứng dụng xuống hay chưa) trong bảng điều khiển Firebase.
Người kiểm thử có 30 ngày để chấp nhận lời mời kiểm thử ứng dụng trước khi lời mời đó hết hạn. Khi lời mời sắp hết hạn (còn 5 ngày), thông báo hết hạn sẽ xuất hiện trong bảng điều khiển Firebase bên cạnh người kiểm thử trong một bản phát hành. Bạn có thể gia hạn lời mời bằng cách gửi lại lời mời đó thông qua trình đơn thả xuống trên hàng của người kiểm thử.
Các bước tiếp theo
Triển khai tính năng phản hồi trong ứng dụng để người kiểm thử dễ dàng gửi ý kiến phản hồi về ứng dụng của bạn (kể cả ảnh chụp màn hình).
Tìm hiểu cách 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.
Truy cập lớp học lập trình Android App Bundle để tìm hiểu từng bước cách phân phối các bản phát hành gói ứng dụng.
Tìm hiểu các phương pháp hay nhất để phân phối ứng dụng Android cho người kiểm thử đảm bảo chất lượng bằng CI/CD.