Bạn có thể tích hợp App Distribution vào quy trình xây dựng Android bằng cách sử dụng Trình bổ trợ Gradle App Distribution. 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, cho phép bạn định cấu hình các bản 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 Android App Bundle (AAB) cho người kiểm thử thông qua trình bổ trợ Gradle App Distribution.
App Distribution tích hợp với dịch vụ chia sẻ ứng dụng nội bộ của Google Play để xử lý các tệp AAB mà bạn tải lên rồi phân phát tệp APK được tối ưu hoá cho người kiểm thử cấu hình thiết bị. Khi phân phối tệp AAB, bạn có thể làm những việc sau:
Chạy các tệp APK được tối ưu hoá (do Google Play phân phát) được tối ưu hoá cho của người kiểm thử thiết bị.
Phát hiện và gỡ lỗi các vấn đề cụ thể theo thiết bị.
Kiểm thử các tính năng của gói ứng dụng như Play Feature Delivery và Play Asset Delivery.
Giảm kích thước tệp tải xuống cho người kiểm thử.
Các quyền bắt buộc
Để tải các tệp AAB lên App Distribution, bạn phải liên kết ứng dụng Firebase của mình với một ứng dụng trong Google Play. Bạn phải có cấp truy cập cần thiết để thực hiện những hành động này.
Nếu không có quyền truy cập cần thiết vào Firebase, bạn có thể yêu cầu một dự án Firebase Chủ sở hữu chỉ định cho bạn vai trò phù hợp thông qua Chế độ cài đặt quản lý danh tính và quyền truy cập (IAM) trên bảng điều khiển Firebase. Nếu bạn có câu hỏi về cách truy cập vào dự án Firebase của mình, bao gồm tìm hoặc chỉ định Chủ sở hữu, hãy xem xét "Quyền và quyền truy cập vào các dự án Firebase" Câu hỏi thường gặp.
Bảng sau đây áp dụng cho việc liên kết một ứng dụng Firebase với một ứng dụng trong Google Play, cũng như tải tệp AAB lên.
Thao tác trong bảng điều khiển Firebase | Quyền quản lý danh tính và quyền truy cập (IAM) bắt buộc | (Các) vai trò IAM bao gồm các quyền cần thiết theo mặc định | (Các) vai trò bắt buộc khác |
---|---|---|---|
Liên kết một ứng dụng Firebase với một ứng dụng trong Google Play | firebase.playLinks.update
|
Một trong những vai trò sau: | Truy cập vào tài khoản nhà phát triển Google Play bằng tài khoản Quản trị |
Tải các tệp AAB lên App Distribution | firebaseappdistro.releases.update
|
Một trong những vai trò sau: | –– |
Trước khi bắt đầu
Nếu bạn chưa thêm Firebase, hãy thêm Firebase vào thiết bị Android của bạn dự án. Ở cuối quy trình làm việc này, bạn sẽ có một Ứng dụng Android trên Firebase trong dự án Firebase của bạn.
Nếu không sử dụng bất kỳ sản phẩm Firebase nào khác, bạn chỉ cần tạo một dự án và đăng ký ứng dụng của bạn. Nếu bạn quyết định sử dụng thêm sản phẩm, hãy nhớ hoàn thành tất cả các bước trong Thêm Firebase vào dự án Android của bạn.
Để tạo đường liên kết đến Firebase với Google Play và tải tệp AAB lên, hãy đảm bảo rằng ứng dụng của bạn đáp ứng các yêu cầu sau:
Cả ứng dụng trong Google Play và ứng dụng Firebase dành cho Android đều được đăng ký bằng cách sử dụng cùng một tên gói.
Ứng dụng trong Google Play được thiết lập trên ứng dụng trang tổng quan và được phân phối đến một trong các kênh Google Play (Thử nghiệm nội bộ, kênh kiểm thử khép kín, kênh kiểm thử công khai hoặc kênh phát hành công khai).
Quá trình xem xét ứng dụng trên Google Play đã hoàn tất và ứng dụng đã được xuất bản. Ứng dụng của bạn được xuất bản nếu cột Trạng thái ứng dụng hiển thị một trong các trạng thái sau: Thử nghiệm nội bộ (không phải Thử nghiệm nội bộ ở dạng bản nháp), Thử nghiệm khép kín, Thử nghiệm công khai hoặc Phát hành công khai.
Liên kết ứng dụng Android trên Firebase với tài khoản nhà phát triển trên Google Play:
Trong bảng điều khiển Firebase, hãy chuyển đến
, sau đó chọn thẻ Tích hợp. Cài đặt dự án Trên thẻ Google Play, hãy nhấp vào Liên kết.
Nếu bạn đã có đường liên kết đến Google Play, hãy nhấp vào Quản lý .Làm theo hướng dẫn trên màn hình để bật App Distribution tích hợp và chọn Ứng dụng Android trên Firebase để liên kết với Google Chơi.
Tìm hiểu thêm về liên kết với Google Play.
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 trong vai trò 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.2" apply false // Add the dependency for the App Distribution Gradle plugin id("com.google.firebase.appdistribution") version "5.0.0" 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.2' apply false // Add the dependency for the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' version '5.0.0' 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
), 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 proxy công ty hoặc tường lửa, hãy thêm thông tin sau Thuộc tính hệ thống Java cho phép App Distribution tải các 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
Để có thể sử dụng trình bổ trợ Gradle, trước tiên, bạn phải xác thực với dự án Firebase theo một trong các cách sau. Theo mặc định, trình bổ trợ Gradle tìm thông tin xác thực từ CLI Firebase nếu không có phương thức xác thực nào khác được sử dụng.
Bước 3. Định cấu hình 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ại
í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
hướng dẫn::
Kotlin
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution android { // ... buildTypes { getByName("release") { firebaseAppDistribution { artifactType = "AAB" releaseNotesFile = "/path/to/releasenotes.txt" testers = "ali@example.com, bri@example.com, cal@example.com" } } } // ... }
Groovy
android { // ... buildTypes { release { firebaseAppDistribution { artifactType="AAB" 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 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 "bản minh hoạ" và "đầy đủ"
phiên bản sản phẩm, 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 phân phối:
Tham số bản dựng App Distribution | |
---|---|
appId
|
Mã ứng dụng Firebase của ứng dụng. Chỉ bắt buộc nếu bạn không có
Đã cài đặt trình bổ trợ Gradle cho Dịch vụ của Google. 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 chứa 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 tệp văn bản thuần tuý. |
testers hoặc testersFile |
Địa chỉ email của người kiểm thử mà bạn muốn phân phối bản dựng sang. Bạn có thể chỉ định người thử nghiệm dưới dạng một danh sách email được phân tách bằng dấu phẩy địa chỉ: 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 ký tự phân tách bằng dấu phẩy danh sách địa chỉ email: testersFile="/path/to/testers.txt" |
groups hoặc groupsFile |
Nhóm người kiểm thử mà bạn muốn phân phối bản dựng (xem
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 danh sách nhóm được phân tách bằng dấu phẩy biệt hiệu: groups="qa-team, android-testers" Hoặc bạn có thể chỉ định đường dẫn đến một tệp chứa ký tự phân tách bằng dấu phẩy danh sách bí danh nhóm: groupsFile="/path/to/tester-groups.txt" |
testDevices hoặc testDevicesFile |
Những hình thức phân phối sau đây là một phần của Tính năng thử nghiệm beta của người kiểm tra tự động. 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ị thử nghiệm dưới dạng danh sách được phân tách bằng dấu chấm phẩy thông số kỹ thuật của thiết bị: 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 tệp có chứa dấu chấm phẩy phân tách danh sách thông số kỹ thuật của thiết bị: testDevicesFile="/path/to/testDevices.txt" |
testUsername |
Tên người dùng để tự động đăng nhập được sử dụng trong quá trình kiểm thử tự động. |
testPassword hoặc testPasswordFile |
Mật khẩu để tự động đăng nhập trong quá trình kiểm thử tự động. Hoặc bạn có thể chỉ định đường dẫn đến 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 để tự động đăng nhập được sử dụng trong quá trình kiểm thử tự động. |
testPasswordResource |
Tên tài nguyên cho trường mật khẩu để tự động đăng nhập được sử dụng trong quá trình kiểm thử tự động. |
testNonBlocking |
Chạy kiểm thử tự động theo cách không đồng bộ. Hãy truy cập vào bảng điều khiển của Firebase để xem kết quả thử nghiệm tự động. |
stacktrace
|
In dấu vết ngăn xếp cho các 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 xây dựng 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à tuỳ chọn phiên bản sản phẩm và loại bản dựng mà bạn đã định cấu hình ở bước trước. Để biết thêm thông tin về các phiên bản sản phẩm, hãy xem Đị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 sau đây:./gradlew bundleRelease appDistributionUploadRelease
Hoặc nếu bạn xác thực bằng Tài khoản Google của mình và không cung cấp thông tin đăng nhập trong tệp bản dựng Gradle của bạn, hãy bao gồm Biến
FIREBASE_TOKEN
:export FIREBASE_TOKEN=1/a1b2c3d4e5f67890 ./gradlew --stop // Only needed for environment variable changes ./gradlew bundleRelease appDistributionUploadRelease
Bạn cũng có thể ghi đè các giá trị đã đặt trong tệp
build.gradle
bằng cách truyền đối số dòng lệnh ở dạng--<property-name>=<property-value>
. Ví dụ:Cách tải một bản gỡ lỗi lên App Distribution:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="AAB"
Cách mời thêm người kiểm thử hoặc xoá người kiểm thử hiện có khỏi Firebase dự án:
./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 người đó vào bản phát hành riêng lẻ. Những người thử nghiệm đã bị xoá sẽ không còn quyền truy cập vào bản phát hành trong dự án, nhưng vẫn có thể giữ lại 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
--file="/path/to/testers.txt"
thay vì--emails
.Việc cần làm
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 xác thực dịch vụ Google của bạn. Đây cũng chính là đối số được 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 đây sau khi tải bản phát hành lên. Các đường liên kết giúp bạn quản lý tệp nhị phân cũng như đảm bảo rằng người kiểm thử cũng như nhà phát triển khác có bản phát hành phù hợp:
firebase_console_uri
– Một đường liên kết đến bảng điều khiển Firebase để hiển thị bản phát hành đĩa đơn. 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 org.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 bản phát hành ghi chú và cài đặt ứng dụng trên thiết bị của họ. Người kiểm thử cần quyền truy cập vào bản phát hành để sử dụng đường liên kết.binary_download_uri
– Một đường liên kết đã ký trực tiếp tải xuống và cài đặt 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 hết hạn 30 ngày, thông báo hết hạn sẽ xuất hiện ở 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ử của họ.
Những người thử nghiệm chưa được mời tham gia thử nghiệm ứng dụng sẽ nhận được lời mời qua email để bắt đầu, đồng thời người kiểm thử hiện tại sẽ nhận được thông báo qua email cho biết bản dựng mới sẵn sàng để thử nghiệm (đọc hướng dẫn thiết lập nhân viên kiểm thử để biết hướng dẫn về cách cài đặt công cụ kiểm tra ). Bạn có thể theo dõi trạng thái của từng người kiểm thử, xem họ có chấp nhận lời mời và liệu họ có tải ứng dụng xuống trong bảng điều khiển của Firebase hay không.
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 ứng dụng hết hạn. Khi lời mời hết hạ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ử trên một bản phát hành. Lời mời có thể là gia hạn bằng cách gửi lại thông qua trình đơn thả xuống trên hàng người kiểm thử.
Các bước tiếp theo
Triển khai phản hồi trong ứng dụng để giúp người thử nghiệm dễ dàng gửi phản hồi về ứng dụng của bạn (bao gồm ảnh chụp màn hình).
Tìm hiểu cách 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.
Truy cập vào lớp học lập trình Android App Bundle để tìm hiểu cách phân phối bản phát hành gói ứng dụng theo từng bước.
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.