Panduan ini menjelaskan cara mendistribusikan build AAB kepada penguji menggunakan
fastlane,
sebuah platform open source yang mengotomatiskan build dan rilis aplikasi
iOS dan Android. Ini dilakukan dengan mengikuti petunjuk sederhana yang ditentukan dalam Fastfile
. Setelah menyiapkan fastlane dan Fastfile
, Anda dapat mengintegrasikan App Distribution dengan konfigurasi fastlane.
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 fastlane
Untuk menambahkan App Distribution ke konfigurasi fastlane, jalankan perintah berikut dari root project Android Anda:
fastlane add_plugin firebase_app_distribution
Jika perintah tersebut menawarkan sejumlah opsi, pilih
Option 3: RubyGems.org
.
Langkah 2. Melakukan autentikasi dengan Firebase
Agar dapat menggunakan plugin fastlane, Anda harus terlebih dahulu melakukan autentikasi dengan project Firebase dengan salah satu cara berikut. Secara default, plugin fastlane mencari kredensial dari Firebase CLI jika tidak ada metode autentikasi lain yang digunakan.
Langkah 3. Menyiapkan Fastfile dan mendistribusikan aplikasi Anda
- Di jalur
./fastlane/Fastfile
, tambahkan blokfirebase_app_distribution
. Gunakan parameter berikut untuk mengonfigurasi distribusi:parameter firebase_app_distribution app
Wajib: ID Aplikasi Firebase aplikasi Anda. Anda dapat menemukan ID Aplikasi di Firebase console, di halaman Setelan Umum.
app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token
Token refresh yang dicetak saat Anda mengautentikasi lingkungan CI dengan Firebase Firebase CLI (baca Menggunakan CLI dengan sistem CI untuk informasi selengkapnya).
service_credentials_file
Jalur ke file json akun layanan Google Anda. Lihat cara di atas untuk mengautentikasi menggunakan kredensial akun layanan.
android_artifact_type
Menentukan jenis file Android (APK atau AAB).
android_artifact_path
Menggantikan
apk_path
(tidak digunakan lagi). Jalur absolut ke file APK atau AAB yang ingin diupload. Jika tidak ditentukan, fastlane akan menentukan lokasi file dari jalur tempat file dibuat.release_notes
release_notes_file
Catatan rilis untuk build ini.
Anda dapat menentukan catatan rilis secara langsung:
release_notes: "Text of release notes"
Atau, tentukan lokasi ke file teks biasa:
release_notes_file: "/path/to/release-notes.txt"
testers
testers_file
Alamat email penguji yang ingin Anda undang.
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 lokasi ke file teks biasa yang berisi daftar alamat email yang dipisahkan koma:
testers_file: "/path/to/testers.txt"
groups
groups_file
Grup penguji yang akan Anda undang (lihat Mengelola penguji). Grup ditentukan menggunakan
alias grup , yang dapat Anda cari di Firebase console.Anda dapat menentukan grup sebagai comma separated list:
groups: "qa-team, trusted-testers"
Atau, Anda dapat menentukan jalur ke file teks biasa yang berisi daftar nama grup yang dipisahkan koma:
groups_file: "/path/to/groups.txt"
test_devices
test_devices_file
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 perangkat pengujian yang dipisahkan titik koma:
test_devices: "model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"
Atau, Anda dapat menentukan jalur ke file teks biasa yang berisi daftar perangkat pengujian yang dipisahkan titik koma:
test_devices_file: "/path/to/test-devices.txt"
test_username
Nama pengguna untuk login otomatis yang akan digunakan selama pengujian otomatis.
test_password
test_password_file
Sandi untuk login otomatis yang akan digunakan selama pengujian otomatis.
Atau, Anda dapat menentukan jalur ke file teks biasa yang berisi sandi:
test_password_file: "/path/to/test-password.txt"
test_username_resource
Nama resource pada kolom nama pengguna untuk login otomatis yang akan digunakan selama pengujian otomatis.
test_password_resource
Nama resource pada kolom sandi untuk login otomatis yang akan digunakan selama pengujian otomatis.
test_non_blocking
Jalankan pengujian otomatis secara asinkron. Buka Firebase console untuk melihat hasil pengujian otomatis.
debug
Tanda boolean. Anda dapat menyetelnya ke
true
untuk mencetak output debug verbose.
platform :android do desc "My awesome app" lane :distribute do build_android_app(task: "bundle", ...) # build_android_app is a built-in fastlane action. release = firebase_app_distribution( app: "1:123456789:android:abcd1234", testers: "tester1@company.com, tester2@company.com", release_notes: "Lots of amazing new features to test out!", android_artifact_type: "AAB" ) end end
Agar build tersedia bagi penguji, jalankan jalur Anda:
fastlane <lane>
Nilai yang ditampilkan dari tindakan adalah hash yang mewakili rilis yang diupload.
Hash ini juga tersedia menggunakan lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE]
.
Untuk informasi selengkapnya tentang kolom yang tersedia dalam hash ini, lihat dokumentasi REST API.
Plugin fastlane menampilkan link berikut setelah upload rilis. Link ini membantu Anda mengelola program biner dan memastikan bahwa penguji serta developer lain memiliki rilis yang tepat:
- Link ke Firebase console yang menampilkan satu rilis. Anda dapat membagikan link ini kepada developer lain di organisasi Anda.
- 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.
- Link bertanda tangan yang langsung mendownload dan menginstal biner aplikasi (file APK atau AAB). Masa berlaku link akan berakhir setelah satu jam.
Setelah Anda mendistribusikan build, build akan tersedia di dasbor App Distribution dari Firebase console selama 150 hari. Saat masa berlaku build akan berakhir dalam 30 hari, pemberitahuan masa berlakunya akan muncul di konsol dan dalam daftar build penguji di perangkat pengujian mereka.
Penguji yang sebelumnya tidak diundang untuk menguji aplikasi akan menerima undangan email untuk memulai. Penguji yang sudah ada akan menerima notifikasi email bahwa ada versi build baru yang siap diuji. Untuk mempelajari cara menginstal aplikasi pengujian, lihat panduan penyiapan penguji. Anda dapat memantau status setiap penguji, untuk mengetahui apakah mereka sudah menerima undangan dan mendownload aplikasi, di Firebaseconsole.
(Opsional) Untuk menambahkan nomor build secara otomatis setiap kali Anda membuat rilis baru di App Distribution, Anda dapat menggunakan tindakan firebase_app_distribution_get_latest_release
dan, misalnya, plugin fastlane increment_version_code
.
Kode berikut memberikan contoh cara menambahkan nomor build secara otomatis:
lane :increment_version do
latest_release = firebase_app_distribution_get_latest_release(
app: "<your Firebase app ID>"
)
increment_version_code({ version_code: latest_release[:buildVersion].to_i + 1 })
end
Untuk mempelajari tindakan firebase_app_distribution_get_latest_release
lebih lanjut,
lihat Mendapatkan informasi tentang rilis terbaru aplikasi.
Langkah 4 (Opsional). Kelola penguji untuk distribusi
Anda dapat menambahkan dan menghapus penguji dari project atau grup menggunakan file Fastfile
atau dengan langsung menjalankan tindakan fastlane. Menjalankan tindakan akan langsung
mengganti nilai yang ditetapkan di Fastfile
Anda.
Setelah penguji ditambahkan ke project Firebase, Anda dapat menambahkannya ke rilis individual. Penguji yang dihapus dari project Firebase Anda tidak lagi memiliki akses ke rilis di project Anda, tetapi tetap mendapatkan akses ke rilis Anda selama jangka waktu tertentu.
Jika Anda memiliki banyak penguji, sebaiknya pertimbangkan untuk menggunakan grup.
Gunakan Fastfile
# Use lanes to add or remove testers from a project. lane(:add_testers) do firebase_app_distribution_add_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" group_alias: "qa-team" # (Optional) add testers to this group ) end lane(:remove_testers) do firebase_app_distribution_remove_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" group_alias: "qa-team" # (Optional) remove testers from this group only ) end
# Add or remove testers with the terminal
$ fastlane add_testers
$ fastlane remove_testers
Menjalankan tindakan fastlane
fastlane run firebase_app_distribution_create_group display_name:"QA Team" alias:"qa-team"
fastlane run firebase_app_distribution_add_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_remove_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_delete_group alias:"qa-team"
Anda juga dapat memilih penguji menggunakan --file="/path/to/testers.txt
, bukan
--emails
.
Tugas firebase_app_distribution_add_testers
dan firebase_app_distribution_remove_testers
juga menerima argumen berikut:
project_name
: Nomor project Firebase Anda.group_alias
(opsional): Jika ditentukan, penguji akan ditambahkan ke (atau dihapus dari) grup yang ditentukan.service_credentials_file
: Jalur ke file kredensial layanan Google Anda.firebase_cli_token
: Token autentikasi untuk Firebase CLI.
service_credentials_file
dan firebase_cli_token
adalah argumen yang sama yang digunakan oleh tindakan upload.
Langkah 5 (Opsional). Mendapatkan informasi tentang rilis terbaru aplikasi Anda
Anda dapat menggunakan tindakan firebase_app_distribution_get_latest_release
untuk mengambil informasi tentang rilis terbaru aplikasi Anda di App Distribution, termasuk informasi versi aplikasi, catatan rilis, dan waktu pembuatan. Kasus penggunaan
mencakup peningkatan versi secara otomatis dan memindahkan catatan
rilis dari rilis sebelumnya.
Nilai yang ditampilkan dari tindakan adalah hash yang mewakili rilis terbaru.
Hash ini juga tersedia menggunakan lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE]
.
Untuk informasi selengkapnya tentang kolom yang tersedia dalam hash ini, lihat dokumentasi REST API.
Parameter
parameter firebase_app_distribution_get_latest_release | |
---|---|
app
|
Wajib: ID Aplikasi Firebase aplikasi Anda. Anda dapat menemukan ID Aplikasi di Firebase console, di halaman Setelan Umum. app: "1:1234567890:android:0a1b2c3d4e5f67890" |
firebase_cli_token
|
Token refresh yang dicetak saat Anda mengautentikasi lingkungan CI dengan Firebase Firebase CLI (baca Menggunakan CLI dengan sistem CI untuk informasi selengkapnya). |
service_credentials_file
|
Jalur ke file json akun layanan Google Anda. Lihat cara di atas untuk mengautentikasi menggunakan kredensial akun layanan. |
debug
|
Tanda boolean. Anda dapat menyetelnya ke |
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.
Pelajari praktik terbaik untuk mendistribusikan aplikasi Android ke penguji QA menggunakan CI/CD.