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

1. Sebelum memulai

4cddd34bd261cea0.png

Dalam codelab ini, Anda akan mempelajari cara menggunakan Firebase App Distribution dan plugin fastlane-nya untuk mendistribusikan aplikasi iOS ke penguji, mengumpulkan UDID perangkat pengujian, dan mendaftarkannya ke profil penyediaan aplikasi, sehingga Anda bisa mendapatkan build Ad Hoc dengan cepat ke tangan 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 secara cepat dengan mengekspor UDID perangkat pengujian menggunakan plugin fastlane App Distribution.
  • Cara mengupdate profil penyediaan aplikasi dan menguploadnya ulang untuk didistribusikan.

Yang Anda butuhkan

  • Akun Google
  • Komputer Apple dengan XCode 11.7+ terinstal
  • Aplikasi iOS pra-rilis Ad Hoc yang di-build 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 tetap dapat memverifikasi bahwa penyiapan berfungsi dengan memverifikasi bahwa tombol "Download" muncul di aplikasi web penguji App Distribution.

2. Memulai

Siapkan fastlane

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

  1. Instal dan siapkan fastlane.
  2. Jalankan fastlane init di direktori utama project Anda 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 menginstal melalui npm.

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

$ firebase --version
12.0.0

3. Membangun aplikasi dengan fastlane

Membuat aplikasi

  1. Tetapkan beberapa variabel global untuk fastlane di ./fastlane/Appfile. Anda. Sertakan ID aplikasi Anda 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 membangun aplikasi dengan menambahkan kode berikut ke ./fastlane/Fastfile Anda:
default_platform(:ios)

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

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 Anda. Namun, biasanya Anda perlu menggunakan fastlane sync_code_signing action (juga dikenal sebagai match) untuk mengelola sertifikat dan profil penandatanganan kode tim 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 membagikan aplikasi kepada 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 Apple Developer Console:

$ fastlane produce --skip_itc

  1. Terakhir, bangun aplikasi Anda dengan menjalankan jalur tersebut.

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

$ fastlane build

Jika Anda mengalami masalah, lihat panduan pemecahan masalah fastlane.

4. Mengupload aplikasi ke Firebase

Setelah membuat 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 baru, lalu masukkan ID paket aplikasi Anda.

9c26c130a6c42212.png

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

Project dan aplikasi Anda kini tersedia di halaman Project Overview.

66f79cc8a97fa8e9.pngS

Mengaktifkan App Distribution

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

460213326c2784ae.png

Menyiapkan distribusi di fastlane

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

Jika perintah tersebut meminta Anda, pilih Opsi 3: RubyGems.org:

$ fastlane add_plugin firebase_app_distribution

  1. Pastikan plugin terinstal:

$ 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.

Mengautentikasi project Firebase

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

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

$ firebase login

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

Mendistribusikan aplikasi

Sekarang Anda siap untuk 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 (ini dapat ditemukan di halaman setelan project).

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 mendistribusikan 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 jalur baru untuk mem-build 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.

c59dc1a94de3bf3c.png

5. Mengundang penguji untuk mendownload aplikasi Anda

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

Tambahkan diri Anda sebagai penguji ke rilis

  1. Pada bagian firebase_app_id di bagian atas Fastfile, buat variabel untuk menampung penguji dan sertakan alamat email Anda sendiri, serta alamat email opsional lain 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 kembali jalur.

$ fastlane distribute

Setelah Anda menjalankan jalur, penguji yang ditambahkan 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 rilis aplikasi.

2e0fc9603b868af8.png

Karena Anda sudah menyertakan alamat email, Anda akan menerima email dari Firebase App Distribution yang mengundang Anda untuk menguji aplikasi. Sekarang Anda menjadi penguji pertama! Lanjutkan bagian di bawah untuk melakukan penyiapan sebagai penguji di perangkat pengujian.

Mendaftarkan perangkat pengujian

Sebagai penguji, Anda harus login ke Google di perangkat pengujian agar dapat mengakses rilis aplikasi yang mengundang Anda untuk diuji. 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.

  1. Di perangkat pengujian iOS, buka email yang dikirim dari Firebase App Distribution dan 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 bawah salah satu rilis.

fd141215e54a938d.png

  1. Jika diminta, download profil Firebase, lalu instal profil di aplikasi Settings.

Jika profil diinstal, Firebase akan memiliki izin untuk:

  • Daftarkan 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.

fe93d649dfa25877.png

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

7b9f665a63a384cf.png

Di bagian berikutnya, Anda akan menambahkan UDID perangkat ke profil penyediaan aplikasi, lalu membangun 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 Penguji & Grup.

241a9936898a2fc0.png

  1. Klik Export Apple UDIDs.

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. Memperbarui profil penyediaan aplikasi dan mem-build ulang profil tersebut

Sekarang, Anda akan menambahkan UDID perangkat pengujian ke profil penyediaan aplikasi, membuat ulang versi aplikasi yang berfungsi untuk perangkat Anda, 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 Apple Developer Console

  1. Buat jalur berikut untuk menambahkan UDID ke daftar perangkat Anda di Konsol Developer Apple, 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. Lalu, jalankan jalur:

$ fastlane add_new_devices

Selanjutnya, Anda dapat melihat perangkat baru tersebut di daftar perangkat konsol developer.

Menambahkan perangkat ke profil penyediaan

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

Menjalankan kembali jalur untuk membuat dan mengupload

Sekarang, Anda akan memperbarui jalur distribute dengan jalur baru untuk menambahkan perangkat ke profil penyediaan, membangun 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 jalur 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, UDID tersebut dapat diinstal ke perangkat pengujian.

e275f73d57cc8fb1.png

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

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

ayah6d03b6ad78746.png

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

7. Selamat

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

Jadi, tidak perlu lagi mengumpulkan UDID satu per satu dari penguji, atau membuka konsol developer Apple untuk memperbarui daftar perangkat atau menyediakan profil. 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