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 Android App Bundle (AAB) kepada penguji menggunakan plugin Gradle App Distribution.
App Distribution terintegrasi dengan layanan fitur berbagi aplikasi internal Google Play untuk memproses AAB yang Anda upload dan menyalurkan APK yang dioptimalkan untuk konfigurasi perangkat penguji. Mendistribusikan AAB memungkinkan Anda melakukan hal berikut:
Menjalankan APK (yang disalurkan oleh Google Play) yang telah dioptimalkan untuk perangkat penguji Anda.
Menemukan dan mendebug masalah terkait perangkat.
Menguji fitur-fitur app bundle seperti Play Feature Delivery dan Play Asset Delivery
Mengurangi ukuran download untuk penguji Anda.
Izin yang diperlukan
Untuk mengupload AAB ke App Distribution, Anda harus menautkan aplikasi Firebase ke aplikasi di Google Play. Anda harus memiliki tingkat akses yang diperlukan untuk melakukan tindakan ini.
Jika tidak memiliki akses Firebase yang diperlukan, Anda dapat meminta Pemilik project Firebase untuk menetapkan peran yang berlaku melalui setelan IAM Firebase console. Jika Anda memiliki pertanyaan terkait cara mengakses project Firebase, termasuk cara menemukan atau menetapkan Pemilik, pelajari FAQ tentang "izin dan akses ke project Firebase".
Tabel berikut berlaku untuk menautkan aplikasi Firebase ke aplikasi di Google Play, serta mengupload AAB.
Tindakan di Firebase console | Izin IAM yang diperlukan | Peran IAM yang menyertakan izin yang diperlukan secara default | Peran tambahan yang diperlukan |
---|---|---|---|
Menautkan aplikasi Firebase ke aplikasi di Google Play | firebase.playLinks.update
|
Salah satu dari peran berikut: | Akses ke akun developer Google Play sebagai Admin |
Mengupload AAB ke App Distribution | firebaseappdistro.releases.update
|
Salah satu dari peran berikut: | –– |
Sebelum memulai
Tambahkan Firebase ke project Android jika belum melakukannya. Di akhir alur kerja ini, Anda akan memiliki Aplikasi Android Firebase di project Firebase.
Jika tidak menggunakan produk Firebase lainnya, Anda hanya perlu membuat project dan mendaftarkan aplikasi. Jika Anda memutuskan untuk menggunakan produk tambahan, pastikan untuk menyelesaikan semua langkah di Menambahkan Firebase ke project Android Anda.
Untuk membuat link Firebase ke Google Play dan mengupload AAB, pastikan aplikasi Anda memenuhi persyaratan berikut:
Aplikasi di Google Play dan aplikasi Android Firebase terdaftar menggunakan nama paket yang sama.
Aplikasi di Google Play disiapkan di dasbor aplikasi dan didistribusikan ke salah satu jalur Google Play (Pengujian internal, Pengujian tertutup, Pengujian terbuka, atau Produksi).
Peninjauan aplikasi di Google Play selesai dan aplikasi sudah dipublikasikan. Aplikasi Anda dianggap sudah dipublikasikan jika kolom Status aplikasi menampilkan salah satu status berikut: Pengujian internal (bukan Draf pengujian internal), Pengujian tertutup, Pengujian terbuka, atau Produksi.
Tautkan Aplikasi Android Firebase ke akun developer Google Play Anda:
Di Firebase console, buka
, lalu pilih tab Integrations. Project settings Di kartu Google Play, klik Link.
Jika Anda sudah memiliki Aplikasi Android Firebase yang tertaut ke Google Play, klik Manage.Ikuti petunjuk di layar untuk mengaktifkan App Distribution dan memilih Aplikasi Android Firebase yang akan ditautkan ke Google Play.
Pelajari lebih lanjut cara menautkan ke Google Play
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 = "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" } } } // ... }
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 bundleRelease 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 bundleRelease 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="AAB"
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.