Anda dapat mengintegrasikan App Distribution ke dalam proses build Android menggunakan plugin App Distribution Gradle. Plugin ini memungkinkan Anda menentukan penguji dan catatan rilis di file build.gradle
aplikasi Anda, memungkinkan Anda mengonfigurasi distribusi untuk tipe dan varian build yang berbeda dari aplikasi Anda.
Panduan ini menjelaskan cara mendistribusikan APK ke penguji menggunakan plugin App Distribution Gradle.
Sebelum kamu memulai
Jika Anda belum melakukannya, tambahkan Firebase ke proyek Android Anda .
Jika Anda tidak menggunakan produk Firebase lainnya, Anda hanya perlu membuat proyek dan mendaftarkan aplikasi Anda. Namun, jika Anda memutuskan untuk menggunakan produk tambahan di masa mendatang, pastikan untuk menyelesaikan semua langkah di halaman yang ditautkan di atas.
Langkah 1. Siapkan proyek Android Anda
Di file Gradle level root (level proyek) Anda (
atau<project>/build.gradle
), tambahkan plugin App Distribution Gradle sebagai dependensi buildscript:<project>/build.gradle.kts Asyik
buildscript { repositories { // Make sure that you have the following two repositories google() // Google's Maven repository mavenCentral() // Maven Central repository } dependencies { ... classpath 'com.android.tools.build:gradle:7.2.0' // Make sure that you have the Google services Gradle plugin dependency classpath 'com.google.gms:google-services:4.3.15' // Add the dependency for the App Distribution Gradle plugin classpath 'com.google.firebase:firebase-appdistribution-gradle:3.2.0' } }
Kotlin
buildscript { repositories { // Make sure that you have the following two repositories google() // Google's Maven repository mavenCentral() // Maven Central repository } dependencies { ... classpath("com.android.tools.build:gradle:7.2.0") // Make sure that you have the Google services Gradle plugin dependency classpath("com.google.gms:google-services:4.3.15") // Add the dependency for the App Distribution Gradle plugin classpath("com.google.firebase:firebase-appdistribution-gradle:3.2.0") } }
Dalam file Gradle modul (level aplikasi) Anda (biasanya
atau<project>/<app-module>/build.gradle
), tambahkan plugin App Distribution Gradle:<project>/<app-module>/build.gradle.kts Asyik
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' }
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") }
Jika Anda menggunakan proxy atau firewall perusahaan, tambahkan properti sistem Java berikut yang memungkinkan App Distribution mengunggah distribusi Anda ke Firebase:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
Langkah 2. Autentikasi dengan Firebase
Sebelum dapat menggunakan plugin Gradle, Anda harus mengautentikasi terlebih dahulu dengan proyek Firebase melalui salah satu cara berikut. Secara default, plugin Gradle mencari kredensial dari Firebase CLI jika tidak ada metode autentikasi lain yang digunakan.
Mengautentikasi dengan akun layanan memungkinkan Anda menggunakan plugin secara fleksibel dengan sistem continuous integration (CI) Anda. Ada dua cara untuk memberikan kredensial akun layanan:
- Berikan file kunci akun layanan Anda ke
build.gradle
. Anda mungkin menemukan metode ini nyaman jika Anda sudah memiliki file kunci akun layanan di lingkungan build Anda. - Setel variabel lingkungan
GOOGLE_APPLICATION_CREDENTIALS
agar mengarah ke file kunci akun layanan Anda. Anda mungkin lebih memilih metode ini jika sudah memiliki Application Default Credentials (ADC) yang dikonfigurasi untuk layanan Google lain (mis., Google Cloud).
Untuk mengautentikasi menggunakan kredensial akun layanan:
- Di Google Cloud Console, pilih project Anda dan buat akun layanan baru.
- Tambahkan peran Admin Distribusi Aplikasi Firebase .
- Buat kunci json pribadi dan pindahkan kunci ke lokasi yang dapat diakses oleh lingkungan build Anda. Pastikan untuk menyimpan file ini di tempat yang aman , karena memberikan akses administrator ke App Distribution di proyek Firebase Anda.
- Lewati langkah ini jika Anda membuat aplikasi setelah 20 September 2019: Di konsol Google API, aktifkan Firebase App Distribution API. Saat diminta, pilih proyek dengan nama yang sama dengan proyek Firebase Anda.
Berikan atau temukan kredensial akun layanan Anda:
- Untuk meneruskan Gradle kunci akun layanan Anda, di file
build.gradle
, setel propertiserviceCredentialsFile
ke file JSON kunci pribadi. Untuk menemukan kredensial Anda dengan ADC, setel variabel lingkungan
GOOGLE_APPLICATION_CREDENTIALS
ke jalur untuk file JSON kunci pribadi. Misalnya:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
Untuk informasi selengkapnya tentang mengautentikasi dengan ADC, baca Menyediakan kredensial untuk aplikasi Anda.
- Untuk meneruskan Gradle kunci akun layanan Anda, di file
Lihat Masuk dengan Firebase CLI untuk petunjuk tentang cara mengautentikasi proyek Anda.
Langkah 3. Konfigurasikan properti distribusi Anda
Dalam file Gradle modul (level aplikasi) Anda (biasanya
atau
), konfigurasikan App Distribution dengan menambahkan setidaknya satu bagian firebaseAppDistribution
.
Misalnya, untuk mendistribusikan build release
ke penguji, ikuti petunjuk berikut::
Asyik
android { // ... buildTypes { release { firebaseAppDistribution { artifactType="APK" releaseNotesFile="/path/to/releasenotes.txt" testers="ali@example.com, bri@example.com, cal@example.com" } } } // ... }
Kotlin
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution 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:
Asyik
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" } } } // ... }
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" } } } // ... }
Gunakan parameter berikut untuk mengonfigurasi distribusi:
Parameter Pembuatan Distribusi Aplikasi | |
---|---|
appId | ID Aplikasi Firebase aplikasi Anda. Diperlukan hanya jika Anda belum memasang plugin Google Services Gradle. Anda dapat menemukan App ID 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 ingin Anda unggah. |
releaseNotes atau releaseNotesFile | Catatan rilis untuk bangunan ini. Anda dapat menentukan catatan rilis secara langsung atau jalur ke file teks biasa. |
testers atau testersFile | Alamat email penguji tempat Anda ingin mendistribusikan build. Anda dapat menentukan penguji sebagai daftar alamat email yang dipisahkan 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 koma: testersFile="/path/to/testers.txt" |
groups atau groupsFile | Grup penguji tempat Anda ingin mendistribusikan build (lihat Kelola penguji ). Grup ditentukan menggunakan Anda dapat menentukan grup sebagai daftar alias grup yang dipisahkan koma: groups="qa-team, android-testers" Atau, Anda dapat menentukan jalur ke file yang berisi daftar alias grup yang dipisahkan koma: groupsFile="/path/to/tester-groups.txt" |
stacktrace | Mencetak stacktrace untuk pengecualian pengguna. Ini berguna saat men-debug masalah. |
Langkah 4. Distribusikan aplikasi Anda ke penguji
Terakhir, untuk mengemas aplikasi pengujian Anda dan mengundang penguji, buat target
BUILD-VARIANT
danappDistributionUpload BUILD-VARIANT
dengan pembungkus Gradle proyek Anda, dengan BUILD-VARIANT adalah ragam produk opsional dan jenis build yang Anda konfigurasikan di langkah sebelumnya. Untuk informasi selengkapnya tentang ragam produk, lihat Mengonfigurasi varian versi .Misalnya, untuk mendistribusikan aplikasi Anda menggunakan varian build
release
, jalankan perintah berikut:./gradlew assembleRelease appDistributionUploadRelease
Atau, jika Anda mengautentikasi dengan Akun Google dan tidak memberikan kredensial dalam 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 bisa mengganti nilai yang ditetapkan dalam file
build.gradle
dengan meneruskan argumen baris perintah dalam bentuk--<property-name>=<property-value>
. Sebagai contoh:Untuk mengupload build debug ke App Distribution:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="APK"
Untuk mengundang penguji tambahan atau menghapus penguji yang 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 proyek Firebase, Anda dapat menambahkannya ke setiap rilis. Penguji yang dihapus tidak akan lagi memiliki akses ke rilis di project Anda, tetapi masih dapat mempertahankan akses ke rilis Anda untuk jangka waktu tertentu.
Anda juga dapat menentukan penguji menggunakan
--file="/path/to/testers.txt"
alih-alih--emails
.Tugas
appDistributionAddTesters
danappDistributionRemoveTesters
juga menerima argumen berikut:projectNumber
: Nomor proyek Firebase Anda.serviceCredentialsFile
: Jalur ke file kredensial layanan Google Anda. Ini adalah argumen yang sama yang digunakan oleh tindakan upload.
Plugin Gradle mengeluarkan tautan berikut setelah unggahan rilis. Tautan ini membantu Anda mengelola binari dan memastikan bahwa penguji dan pengembang lain memiliki rilis yang tepat:
-
firebase_console_uri
- Tautan ke konsol Firebase yang menampilkan rilis tunggal. Anda dapat membagikan tautan ini dengan pengembang lain di organisasi Anda. -
testing_uri
- Tautan ke rilis dalam pengalaman penguji (aplikasi asli Android) yang memungkinkan penguji melihat catatan rilis dan menginstal aplikasi ke perangkat mereka. Penguji memerlukan akses ke rilis untuk menggunakan tautan. -
binary_download_uri
- Tautan bertanda tangan yang langsung mengunduh dan menginstal biner aplikasi (file APK atau AAB). Tautan kedaluwarsa setelah satu jam.
Setelah Anda mendistribusikan build, build tersebut akan tersedia di dasbor App Distribution dari Firebase console selama 150 hari (lima bulan). Saat build 30 hari dari kedaluwarsa, pemberitahuan kedaluwarsa muncul di konsol dan daftar build penguji Anda di perangkat pengujian mereka.
Penguji yang belum diundang untuk menguji aplikasi menerima undangan email untuk memulai, dan penguji yang sudah ada menerima pemberitahuan email bahwa build baru siap untuk diuji (baca panduan penyiapan penguji untuk petunjuk tentang cara menginstal aplikasi pengujian). Anda dapat memantau status setiap penguji-apakah mereka menerima undangan dan mengunduh aplikasi-di konsol Firebase.
Penguji memiliki waktu 30 hari untuk menerima undangan untuk menguji aplikasi sebelum kedaluwarsa. Saat undangan 5 hari dari kedaluwarsa, pemberitahuan kedaluwarsa muncul di konsol Firebase di samping penguji pada rilis. Undangan dapat diperbarui dengan mengirimkannya kembali menggunakan menu tarik-turun di baris penguji.
Langkah selanjutnya
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 .