Distribusikan build iOS pra-rilis Anda lebih cepat dengan App Distribution dan fastlane

1. Sebelum memulai

4cddd34bd261cea0.pngS

Dalam codelab ini, Anda akan mempelajari cara menggunakan Firebase App Distribution dan plugin fastlane-nya untuk mendistribusikan aplikasi iOS kepada penguji, mengumpulkan UDID perangkat pengujian, dan mendaftarkannya ke profil penyediaan aplikasi, sehingga Anda dapat dengan cepat mendistribusikan build Ad Hoc kepada penguji.

Yang akan Anda pelajari

  • Cara mengupload dan mendistribusikan aplikasi iOS pra-rilis (Ad Hoc) kepada penguji menggunakan Firebase App Distribution dan fastlane.
  • Cara mendaftar sebagai penguji dan mendownload aplikasi yang didistribusikan di perangkat pengujian.
  • Cara mendaftarkan perangkat pengujian dengan cepat dengan mengekspor UDID perangkat pengujian menggunakan plugin fastlane dari App Distribution.
  • Cara memperbarui profil penyediaan aplikasi dan mengupload ulang untuk distribusi.

Yang Anda butuhkan

  • Akun Google
  • Komputer Apple yang sudah menginstal XCode 11.7+
  • Aplikasi iOS pra-rilis Ad Hoc yang dibuat di Xcode
  • Akun Apple Developer berbayar
  • Perangkat iOS fisik untuk pengujian.

Aplikasi simulator iOS akan berfungsi untuk sebagian besar codelab, tetapi simulator tidak dapat mendownload rilis.

Anda masih dapat memverifikasi bahwa penyiapan berfungsi dengan memastikan bahwa tombol "Download" muncul di aplikasi web penguji App Distribution.

2. Memulai

Siapkan fastlane

App Distribution terintegrasi dengan fastlane untuk memungkinkan Anda mengotomatiskan distribusi build pra-rilis aplikasi. App Distribution terintegrasi dengan konfigurasi fastlane.

  1. Instal dan siapkan fastlane.
  2. Jalankan fastlane init di direktori utama project selama penyiapan, lalu pilih "Penyiapan manual". Anda akan melihat subdirektori bernama fastlane yang berisi Fastfile, Appfile, dan Pluginfile, yang akan Anda gunakan untuk mengonfigurasi fastlane.

Menginstal Firebase CLI

Anda juga harus menginstal Firebase CLI. Jika menggunakan macOS atau Linux, Anda dapat menjalankan perintah cURL berikut:

curl -sL https://firebase.tools | bash

Jika Anda menggunakan Windows, baca petunjuk penginstalan untuk mendapatkan biner mandiri atau untuk menginstal melalui npm.

Setelah menginstal CLI, menjalankan firebase --version akan melaporkan versi 12.0.0 atau yang lebih tinggi:

$ firebase --version
12.0.0

3. Membangun aplikasi dengan fastlane

Mem-build aplikasi

  1. Tetapkan beberapa variabel global untuk fastlane di ./fastlane/Appfile. Sertakan ID aplikasi dan ID Apple Anda:
app_identifier("<your app's bundle identifier>")
apple_id("<your Apple id>")
  1. Buat jalur pertama Anda dan gunakan tindakan build_app fastlane (juga dikenal sebagai gym) untuk membuat aplikasi dengan menambahkan kode berikut ke ./fastlane/Fastfile:
default_platform(:ios)

lane :build do
    build_app(export_method: "ad-hoc")
end
  1. Menandatangani aplikasi untuk didistribusikan.

Untuk codelab ini, Anda akan mengelola sertifikasi dan profil Anda sendiri menggunakan get_certificates (juga dikenal sebagai cert), yang membuat sertifikat penandatanganan secara lokal dan menyimpan semuanya di Keychain macOS. Namun, biasanya Anda akan menggunakan fastlane sync_code_signing action (juga dikenal sebagai match) untuk mengelola profil dan sertifikat penandatanganan kode tim Anda dengan aman.

lane :build do
    get_certificates()
    build_app(export_method: "ad-hoc")
end
  1. Siapkan profil penyediaan untuk aplikasi Anda menggunakan tindakan get_provisioning_profile (juga dikenal sebagai sigh). Tindakan ini memungkinkan Anda berbagi aplikasi dengan penguji.
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end
  1. [Opsional] Jika Anda belum pernah menjalankan aplikasi sebelumnya, jalankan perintah berikut untuk membuat aplikasi di konsol developer Apple:

$ fastlane produce --skip_itc

  1. Terakhir, bangun aplikasi Anda dengan menjalankan lane.

Anda akan diminta untuk memasukkan ID Apple, sandi (yang disimpan di Keychain), dan ID paket aplikasi Anda.

$ fastlane build

Jika Anda mengalami masalah, lihat panduan pemecahan masalah fastlane.

4. Mengupload aplikasi ke Firebase

Setelah mem-build aplikasi, Anda siap menguploadnya ke App Distribution.

Membuat dan menyiapkan project Firebase

  1. Login ke Firebase.
  2. Di Firebase console, buat atau tambahkan project baru, lalu beri nama project Anda "UDID Export Codelab".

Anda tidak perlu mengaktifkan Google Analytics untuk project ini.

  1. Klik Create project.

Menambahkan aplikasi iOS Anda ke project

  1. Klik ikon iOS untuk membuat aplikasi iOS Firebase yang baru, dan masukkan ID paket aplikasi Anda.

9c26c130a6c42212.png

  1. Lewati beberapa langkah berikutnya, lalu klik Lanjutkan ke konsol. Anda akan menambahkan SDK ke aplikasi Anda nanti.

Project dan aplikasi Anda kini tersedia di halaman Ringkasan Project.

66f79cc8a97fa8e9.pngS

Mengaktifkan App Distribution

  1. Di bagian Rilis & Pantau bagian, klik App Distribution.
  2. Setelah menyetujui persyaratan, klik "Mulai" untuk mengaktifkan App Distribution untuk aplikasi Anda.

460213326c2784ae.pngS

Menyiapkan distribusi di fastlane

  1. Jalankan perintah berikut dari root project iOS untuk menambahkan App Distribution ke konfigurasi fastlane.

Jika perintah tersebut menawarkan sejumlah opsi, pilih Opsi 3: RubyGems.org:

$ fastlane add_plugin firebase_app_distribution

  1. Pastikan plugin telah diinstal:

$ fastlane

Output akan menampilkan fastlane-plugin-firebase_app_distribution dalam daftar plugin yang terinstal.

  1. Setelah mengonfirmasi bahwa plugin telah diinstal, pilih opsi 0 untuk membatalkan.

Melakukan autentikasi project Firebase

Untuk menggunakan plugin fastlane, Anda harus melakukan autentikasi project Firebase terlebih dahulu.

  1. Jalankan perintah berikut untuk menghubungkan CLI ke Akun Google Anda:

$ firebase login

  1. Saat perintah mencetak link autentikasi, buka link di browser.
  2. Saat diminta, login ke Akun Google Anda dan berikan izin untuk mengakses project Firebase Anda.

Mendistribusikan aplikasi Anda

Kini Anda siap mendistribusikan aplikasi.

  1. Di bagian atas ./fastlane/Fastfile, tentukan variabel yang disebut firebase_app_id. Ganti <your_app_id> dengan ID Aplikasi Firebase untuk aplikasi yang Anda buat (dapat ditemukan di halaman project settings).

Fastfile ditulis dalam Ruby, jadi gunakan sintaksis Ruby untuk menentukan variabel.

firebase_app_id = "<your_app_id>"
  1. Tambahkan jalur baru bernama distribute yang memanggil jalur build, lalu distribusikan aplikasi Anda menggunakan tindakan firebase_app_distribution.
lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
    )
end
  1. Jalankan lane baru untuk membangun aplikasi dan membuat distribusi.

$ fastlane distribute

Pada tahap ini, Fastfile Anda akan terlihat seperti berikut:

firebase_app_id = "<your Firebase app ID>"

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
    )
end

Setelah memuat ulang Firebase console, Anda akan melihat rilis baru untuk aplikasi Anda.

c59dc1a94de3bf3c.pngS

5. Undang penguji untuk mendownload aplikasi Anda

Saat menerima undangan untuk menguji build Ad Hoc, penguji akan dimintai izin untuk membagikan UDID mereka. Jika mereka setuju, App Distribution akan mengumpulkan informasi perangkat mereka dan memberi tahu Anda melalui email. Di bagian ini, Anda akan menambahkan diri Anda sebagai penguji untuk mendownload dan menguji aplikasi yang didistribusikan.

Menambahkan diri Anda sebagai penguji pada rilis

  1. Di bagian firebase_app_id di bagian atas Fastfile, buat variabel untuk menyimpan penguji dan sertakan alamat email Anda sendiri, serta alamat email opsional lainnya yang ingin Anda coba.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
  1. Terapkan metode Array#join Ruby untuk mengubah array app_testers menjadi string yang dipisahkan koma, yang diharapkan oleh parameter testers. Kemudian, teruskan hasilnya ke parameter testers dari firebase_app_distribution.
lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!"
        testers: app_testers.join(","),
    )
end

Pada tahap ini, Fastfile Anda akan terlihat seperti ini:

firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
        testers: app_testers.join(","),
    )
end
  1. Jalankan lagi jalur.

$ fastlane distribute

Setelah Anda menjalankan jalur, penguji yang Anda tambahkan akan menerima email undangan dari App Distribution yang memberi tahu mereka tentang rilis yang baru tersedia. Di Firebase console, Anda kini dapat melihat penguji yang ditambahkan di bagian rilis aplikasi.

2e0fc9603b868af8.png

Karena Anda menyertakan alamat email, Anda akan menerima email dari Firebase App Distribution yang mengundang Anda untuk menguji aplikasi. Sekarang Anda adalah penguji pertama. Lanjutkan ke bagian di bawah untuk menyiapkan penguji di perangkat pengujian Anda.

Mendaftarkan perangkat pengujian

Sebagai penguji, Anda harus login ke Google di perangkat pengujian agar dapat mengakses rilis aplikasi yang mengundang Anda untuk melakukan pengujian. Karena build pengujian Anda adalah rilis Ad Hoc, Anda juga harus mendaftarkan perangkat pengujian dengan menginstal profil Firebase. Setelah itu, rilis yang tersedia untuk Anda dapat diakses dari aplikasi web penguji App Distribution, menggunakan klip web yang ditambahkan ke layar utama perangkat Anda.

  1. Di perangkat pengujian iOS Anda, buka email yang dikirim dari Firebase App Distribution, lalu ketuk link Mulai. Pastikan untuk membuka link di Safari.
  2. Anda kini berada di aplikasi web penguji App Distribution. Di halaman yang muncul, login dengan Akun Google Anda, lalu ketuk Terima undangan.

d833407de251b89f.pngS

  1. Sekarang Anda dapat melihat rilis yang mengundang Anda. Ketuk Daftarkan perangkat di salah satu rilis.

fd141215e54a938d.pngS

  1. Saat diminta, download profil Firebase, lalu instal profil tersebut di aplikasi Setelan.

Jika profil diinstal, Firebase akan memiliki izin untuk:

  • Mendaftarkan perangkat pengujian dengan mengumpulkan ID perangkat unik (UDID) perangkat.

Firebase mengirimkan email kepada semua Pemilik dan Editor project Firebase yang menyertakan UDID perangkat pengujian.

  • Instal klip web ke layar utama perangkat pengujian. Klip web akan membuka aplikasi web penguji App Distribution, yang memungkinkan Anda menginstal dan mengakses semua aplikasi pengujian.

Di aplikasi web penguji App Distribution, perangkat pengujian Anda kini terdaftar untuk rilis aplikasi Anda.

fe93d649dfa25877.pngS

Setelah membagikan UDID perangkat pengujian ke Firebase, Anda kini dapat melanjutkan sebagai developer. Di tab Penguji pada dasbor App Distribution, informasi penguji sekarang muncul di rilis aplikasi Anda dengan status "Diterima":

7b9f665a63a384cf.png

Di bagian berikutnya, Anda akan menambahkan UDID perangkat ke profil penyediaan aplikasi, lalu mem-build versi aplikasi yang berfungsi dengan perangkat pengujian.

Mengekspor UDID perangkat penguji

Sebagai developer, Anda akan mendapatkan email dari Firebase yang berisi UDID perangkat pengujian. Sebagai opsi, App Distribution memudahkan pengumpulan beberapa UDID perangkat baru sekaligus dengan memungkinkan Anda mengekspornya langsung dari Firebase console sebagai file teks mentah.

  1. Untuk mengekspor semua UDID, buka tab Testers & Groups.

241a9936898a2fc0.png

  1. Klik Ekspor UDID Apple.

bcf0c26c522d9b4e.png

File harus berisi UDID perangkat pengujian Anda.

Device ID            Device Name                            Device Platform
1234567890     udid.codelab.tester@gmail.com - iPhone SE 2nd Gen        ios

UDID juga dapat diekspor dari command line menggunakan fastlane, yang akan Anda lakukan di bagian berikutnya.

6. Mengupdate profil penyediaan aplikasi dan membangun ulang profil

Sekarang, Anda akan menambahkan UDID perangkat pengujian ke profil penyediaan aplikasi, membuat ulang versi aplikasi yang sesuai untuk perangkat, dan mendistribusikan versi baru.

Tambahkan jalur ekspor UDID

  1. Tambahkan variabel lain di bagian atas Fastfile, dan tetapkan ke jalur file tempat UDID perangkat penguji akan didownload.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
tester_udids_file = "tester_udids.txt"
  1. Siapkan jalur baru yang menggunakan tindakan ekspor UDID plugin App Distribution untuk mendownload UDID penguji, seperti yang Anda lakukan dari konsol.
lane :download_udids do
    firebase_app_distribution_get_udids(
        app: firebase_app_id,
        output_file: tester_udids_file,
    )
end
  1. Jalankan jalur berikut untuk mendownload UDID.

$ fastlane download_udids

  1. Cetak file yang didownload, yang seharusnya berisi UDID perangkat pengujian.

$ cat tester_udids.txt

Menambahkan perangkat ke konsol developer Apple

  1. Buat jalur berikut untuk menambahkan UDID ke daftar perangkat di Apple Developer Console, sehingga Anda dapat menambahkannya ke profil penyediaan menggunakan tindakan register_devices fastlane:
lane :add_new_devices do
    register_devices(devices_file: tester_udids_file)
end
  1. Kemudian, jalankan jalur:

$ fastlane add_new_devices

Kemudian, Anda akan melihat perangkat baru di daftar perangkat konsol developer.

Menambahkan perangkat ke profil penyediaan

  1. Tambahkan argumen force ke langkah profil penyediaan di jalur build Anda, untuk memaksanya mengambil perangkat baru setiap kali Anda mem-build.
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true, force: true)
    build_app(export_method: "ad-hoc")
end

Menjalankan ulang jalur untuk mem-build dan mengupload

Sekarang, Anda akan memperbarui jalur distribute dengan jalur baru untuk menambahkan perangkat ke profil penyediaan, mem-build ulang aplikasi, lalu mendistribusikannya.

  1. Panggil jalur baru dari distribute:
lane :distribute do
    download_udids
    add_new_devices
    build
    firebase_app_distribution(
        app: "1:123456789:ios:abcd1234",
        release_notes: "Try out this app!"
        testers: app_testers.join(","),
    )
end
  1. Jalankan lane distribute:

$ fastlane distribute

Pada tahap ini, Fastfile Anda akan terlihat seperti ini:

firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
tester_udids_file = "tester_udids.txt"

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true, force: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    download_udids
    add_new_devices
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
        testers: app_testers.join(","),
    )
end

lane :download_udids do
    firebase_app_distribution_get_udids(
        app: firebase_app_id,
        output_file: tester_udids_file,
    )
end

lane :add_new_devices do
    register_devices(devices_file: tester_udids_file)
end

Mendownload rilis dari perangkat pengujian

Setelah aplikasi Anda menyertakan UDID perangkat pengujian, aplikasi tersebut dapat diinstal ke perangkat pengujian.

e275f73d57cc8fb1.png

  1. Di perangkat pengujian, kembali ke aplikasi web pengujian App Distribution menggunakan link di email, atau ikon di layar utama perangkat.

Saat membuka aplikasi codelab UDID, Anda dapat melihat bahwa rilis siap didownload.

dad6d03b6ad78746.pngS

  1. Jika Anda menggunakan perangkat fisik, tekan download, lalu instal dan jalankan aplikasi.

7. Selamat

Anda kini telah mengonfigurasi App Distribution dan fastlane untuk mengotomatiskan proses pengujian pra-rilis. Sekarang, saat ingin mengundang penguji tambahan, atau menambahkan UDID mereka ke aplikasi, Anda hanya perlu menjalankan satu perintah: fastlane distribute.

Jadi, Anda tidak perlu lagi mengumpulkan UDID dari penguji satu per satu, atau membuka konsol developer Apple untuk memperbarui daftar perangkat atau profil penyediaan. Anda bahkan tidak perlu membuka XCode!

Alur kerja ini mudah disiapkan untuk dijalankan setiap jam atau setiap hari di lingkungan continuous integration Anda.

Bacaan lebih lanjut