Anda dapat mengintegrasikan App Distribution ke dalam proses build Android menggunakan plugin Gradle App Distribution. Dengan plugin ini, Anda dapat menentukan penguji dan catatan rilis di file Gradle aplikasi sehingga dapat mengonfigurasi distribusi untuk beragam jenis build dan varian aplikasi.
Panduan ini menjelaskan cara mendistribusikan APK kepada penguji menggunakan plugin Gradle App Distribution.
Sebelum memulai
Tambahkan Firebase ke project Android jika belum melakukannya.
Jika tidak menggunakan produk Firebase lainnya, Anda hanya perlu membuat project dan mendaftarkan aplikasi. Namun, jika memutuskan untuk menggunakan produk tambahan di masa mendatang, pastikan untuk menyelesaikan semua langkah di halaman yang tertaut di atas.
Langkah 1. Menyiapkan project Android
Dalam file Gradle level root (level project) (
<project>/build.gradle.kts
atau<project>/build.gradle
), tambahkan plugin Gradle App Distribution sebagai dependensi: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 }
Dalam file Gradle modul (level aplikasi) (biasanya
<project>/<app-module>/build.gradle.kts
atau<project>/<app-module>/build.gradle
), tambahkan plugin 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' }
Jika Anda menggunakan proxy atau firewall perusahaan, tambahkan properti sistem Java yang mengaktifkanApp Distribution untuk mengupload distribusi ke Firebase:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
Langkah 2. Melakukan autentikasi dengan Firebase
Agar dapat menggunakan plugin Gradle, Anda harus terlebih dahulu melakukan autentikasi dengan project Firebase dengan salah satu cara berikut. Secara default, plugin Gradle mencari kredensial dari Firebase CLI jika tidak ada metode autentikasi lain yang digunakan.
Langkah 3. Konfigurasikan properti distribusi Anda
Dalam file Gradle modul (level aplikasi) (biasanya <project>/<app-module>/build.gradle.kts
atau <project>/<app-module>/build.gradle
), konfigurasikan App Distribution dengan menambahkan setidaknya satu bagian firebaseAppDistribution
.
Misalnya, untuk mendistribusikan build release
kepada penguji, ikuti petunjuk berikut:
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" } } } // ... }
Anda dapat mengonfigurasi App Distribution untuk jenis build dan ragam produk.
Misalnya, untuk mendistribusikan build debug
dan release
dalam ragam produk "demo" "dan" "lengkap", ikuti petunjuk berikut:
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" } } } // ... }
Gunakan parameter berikut untuk mengonfigurasi distribusi:
Parameter Build App Distribution | |
---|---|
appId
|
ID Aplikasi Firebase aplikasi Anda. Diperlukan hanya jika Anda tidak menginstal plugin Gradle Layanan Google. Anda dapat menemukan ID Aplikasi di file appId="1:1234567890:android:321abc456def7890" |
serviceCredentialsFile
|
Jalur ke file JSON kunci pribadi akun layanan Anda. Diperlukan hanya jika Anda menggunakan autentikasi akun layanan. |
artifactType
|
Menentukan jenis file aplikasi Anda. Dapat disetel ke
|
artifactPath
|
Jalur absolut ke file APK atau AAB yang akan diupload. |
releaseNotes atau releaseNotesFile |
Catatan rilis untuk build ini. Anda dapat menentukan catatan rilis secara langsung atau menentukan jalur ke file teks biasa. |
testers atau testersFile |
Alamat email penguji yang akan didistribusikan build. Anda dapat menentukan penguji sebagai daftar alamat email yang dipisahkan dengan koma: testers="ali@example.com, bri@example.com, cal@example.com" Atau, Anda dapat menentukan jalur ke file yang berisi daftar alamat email yang dipisahkan dengan koma: testersFile="/path/to/testers.txt" |
groups atau groupsFile |
Grup penguji yang akan didistribusikan build (lihat Mengelola penguji).
Grup ditentukan menggunakan Anda dapat menentukan grup sebagai daftar alias grup yang dipisahkan koma: groups="qa-team, android-testers" Atau, Anda dapat menentukan lokasi ke file yang berisi daftar alias grup yang dipisahkan koma: groupsFile="/path/to/tester-groups.txt" |
testDevices atau testDevicesFile |
Jenis distribusi berikut adalah bagian dari Fitur beta penguji otomatis. Perangkat pengujian tempat Anda ingin mendistribusikan build (lihat Pengujian otomatis). Anda dapat menentukan perangkat pengujian sebagai daftar spesifikasi perangkat yang dipisahkan titik koma: testDevices="model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait" Atau, Anda dapat menentukan jalur ke file yang berisi daftar spesifikasi perangkat yang dipisahkan titik koma: testDevicesFile="/path/to/testDevices.txt" |
testUsername |
Nama pengguna untuk login otomatis yang akan digunakan selama pengujian otomatis. |
testPassword atau testPasswordFile |
Sandi untuk login otomatis yang akan digunakan selama pengujian otomatis. Atau, Anda dapat menentukan jalur ke file teks biasa yang berisi sandi: testPasswordFile="/path/to/testPassword.txt" |
testUsernameResource |
Nama resource pada kolom nama pengguna untuk login otomatis yang akan digunakan selama pengujian otomatis. |
testPasswordResource |
Nama resource pada kolom sandi untuk login otomatis yang akan digunakan selama pengujian otomatis. |
testNonBlocking |
Jalankan pengujian otomatis secara asinkron. Buka Firebase console untuk melihat hasil pengujian otomatis. |
stacktrace
|
Mencetak stacktrace untuk pengecualian pengguna. Hal ini berguna saat men-debug masalah. |
Langkah 4. Distribusikan aplikasi kepada penguji
Terakhir, untuk memaketkan aplikasi pengujian dan mengundang penguji, build target
BUILD-VARIANT
danappDistributionUploadBUILD-VARIANT
dengan wrapper Gradle project. Dalam hal ini, BUILD-VARIANT adalah ragam produk dan jenis build opsional yang Anda konfigurasikan pada langkah sebelumnya. Untuk mengetahui informasi selengkapnya tentang ragam produk, baca artikel Mengonfigurasi varian build.Misalnya, untuk mendistribusikan aplikasi menggunakan varian build
release
, jalankan perintah berikut:./gradlew assembleRelease appDistributionUploadRelease
Atau, jika Anda melakukan autentikasi dengan Akun Google dan tidak memberikan kredensial di file build Gradle, sertakan variabel
FIREBASE_TOKEN
:export FIREBASE_TOKEN=1/a1b2c3d4e5f67890 ./gradlew --stop // Only needed for environment variable changes ./gradlew assembleRelease appDistributionUploadRelease
Anda juga dapat mengganti nilai yang ditetapkan dalam file
build.gradle
dengan meneruskan argumen command line dalam bentuk--<property-name>=<property-value>
. Contoh:Untuk mengupload build debug ke App Distribution:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="APK"
Untuk mengundang penguji tambahan atau menghapus penguji yang sudah ada dari project Firebase Anda:
./gradlew appDistributionAddTesters --projectNumber=<project_number> --emails="anothertester@email.com, moretesters@email.com"
./gradlew appDistributionRemoveTesters --projectNumber=<project_number> --emails="anothertester@email.com, moretesters@email.com"
Setelah penguji ditambahkan ke project Firebase, Anda dapat menambahkannya ke rilis individual. Penguji yang dihapus tidak akan lagi memiliki akses ke rilis di project Anda, tetapi masih dapat mempertahankan akses ke rilis Anda selama jangka waktu tertentu.
Anda juga dapat memilih penguji menggunakan
--file="/path/to/testers.txt"
, bukan--emails
.Tugas
appDistributionAddTesters
danappDistributionRemoveTesters
juga menerima argumen berikut:projectNumber
: Nomor project Firebase Anda.serviceCredentialsFile
: Jalur ke file kredensial layanan Google Anda. Argumen ini sama dengan yang digunakan oleh tindakan upload.
Plugin Gradle menampilkan link berikut setelah upload rilis. Link ini membantu Anda mengelola biner dan memastikan bahwa penguji serta developer lain memiliki rilis yang tepat:
firebase_console_uri
- Link ke Firebase console yang menampilkan satu rilis. Anda dapat membagikan link ini kepada developer lain di organisasi Anda.testing_uri
- Link ke rilis dalam pengalaman penguji (aplikasi native Android) yang memungkinkan penguji melihat catatan rilis dan menginstal aplikasi ke perangkat mereka. Penguji memerlukan akses ke rilis untuk menggunakan link.binary_download_uri
- Link bertanda tangan yang langsung mendownload dan menginstal biner aplikasi (file APK atau AAB). Masa berlaku link akan berakhir setelah satu jam.
Setelah didistribusikan, build Anda akan tersedia di dasbor App Distribution di Firebase console selama 150 hari (lima bulan). Saat masa berlaku build akan berakhir dalam 30 hari, notifikasi akhir masa berlakunya akan muncul di konsol dan di daftar build penguji pada perangkat pengujinya.
Penguji yang belum diundang untuk menguji aplikasi akan menerima undangan email untuk memulai, dan penguji yang ada akan menerima notifikasi email bahwa ada versi build baru yang siap diuji (baca panduan penyiapan penguji untuk mengetahui petunjuk cara menginstal aplikasi pengujian). Anda dapat memantau status setiap penguji, apakah mereka sudah menerima undangan dan mendownload aplikasi, di Firebase console.
Penguji memiliki waktu 30 hari untuk menerima undangan pengujian aplikasi sebelum masa berlakunya habis. Saat masa berlaku undangan akan berakhir dalam 5 hari, notifikasi habisnya masa berlaku akan muncul di Firebase console di samping penguji pada rilis. Undangan dapat diperpanjang dengan pengiriman ulang menggunakan menu drop-down pada baris penguji.
Langkah berikutnya
Terapkan masukan dalam aplikasi untuk memudahkan penguji mengirimkan masukan tentang aplikasi Anda (termasuk screenshot).
Pelajari cara menampilkan pemberitahuan dalam aplikasi kepada penguji saat build baru aplikasi sudah tersedia untuk diinstal.
Kunjungi codelab Android App Bundle untuk mempelajari cara mendistribusikan rilis app bundle langkah demi langkah.
Pelajari praktik terbaik untuk mendistribusikan aplikasi Android ke penguji QA menggunakan CI/CD.