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

1. Sebelum Anda mulai

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 Anda, sehingga Anda dapat membuat Ad Hoc dengan cepat menjadi penguji ' tangan.

Apa yang akan Anda pelajari

  • Cara mengupload dan mendistribusikan aplikasi iOS pra-rilis (Ad Hoc) ke penguji menggunakan Firebase App Distribution dan fastlane .
  • Cara mendaftar sebagai penguji dan mengunduh aplikasi terdistribusi di perangkat uji.
  • Cara mendaftarkan perangkat uji dengan cepat dengan mengekspor UDID perangkat uji dengan plugin fastlane App Distribution.
  • Cara mengupdate profil penyediaan aplikasi Anda dan mengupload ulang untuk distribusi.

Apa yang Anda butuhkan

  • Akun Google
  • Mesin Apple dengan XCode 11.7+ terpasang
  • Aplikasi iOS pra-rilis Ad Hoc yang dibangun di Xcode
  • Akun Pengembang Apple 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 memverifikasi bahwa tombol "Unduh" muncul di aplikasi web penguji Distribusi Aplikasi.

2. Mulailah

Siapkan jalur cepat

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 atur fastlane .
  2. Jalankan fastlane init di direktori root proyek Anda selama penyiapan, dan pilih "Penyiapan manual". Anda akan melihat subdirektori bernama fastlane yang berisi Fastfile , Appfile , dan Pluginfile , yang akan Anda gunakan untuk mengonfigurasi fastlane .

Instal Firebase CLI

Anda juga perlu menginstal Firebase CLI . Jika Anda 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 akan melaporkan versi 12.0.0 atau lebih tinggi:

$ firebase --version
12.0.0

3. Bangun aplikasi Anda dengan fastlane

Bangun aplikasi Anda

  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 membangun aplikasi Anda dengan menambahkan yang berikut ke ./fastlane/Fastfile Anda:
default_platform(:ios)

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

Untuk codelab ini, Anda akan mengelola sertifikasi dan profil Anda sendiri menggunakan get_certificates (juga dikenal sebagai cert ), yang menghasilkan sertifikat penandatanganan secara lokal dan menyimpan semuanya di Keychain macOS Anda. Namun, biasanya, Anda ingin menggunakan sync_code_signing action fastlane sync_code_signing (juga dikenal sebagai match ) untuk mengelola sertifikat dan profil 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 ). 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 Anda di konsol pengembang Apple:

$ fastlane produce --skip_itc

  1. Terakhir, bangun aplikasi Anda dengan menjalankan jalur.

Anda akan diminta memasukkan ID Apple, kata sandi (yang disimpan di Rantai Kunci), dan ID bundel aplikasi Anda.

$ fastlane build

Jika Anda mengalami masalah apa pun, silakan lihat panduan pemecahan masalah jalur cepat .

4. Unggah aplikasi Anda ke Firebase

Setelah membuat aplikasi, Anda siap mengunggahnya ke App Distribution.

Buat dan siapkan proyek Firebase

  1. Masuk ke Firebase.
  2. Di konsol Firebase, buat atau tambahkan proyek baru, lalu beri nama proyek Anda "UDID Export Codelab".

Anda tidak perlu mengaktifkan Google Analytics untuk proyek ini.

  1. Klik Buat proyek .

Tambahkan aplikasi iOS Anda ke proyek

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

9c26c130a6c42212.png

  1. Lewati beberapa langkah berikutnya, lalu klik Continue to console . Anda akan menambahkan SDK ke aplikasi Anda nanti.

Proyek dan aplikasi Anda sekarang tersedia di halaman Ikhtisar Proyek .

66f79cc8a97fa8e9.png

Aktifkan Distribusi Aplikasi

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

460213326c2784ae.png

Siapkan distribusi di jalur cepat

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

Jika perintah meminta Anda dengan sebuah opsi, pilih Opsi 3: RubyGems.org :

$ fastlane add_plugin firebase_app_distribution

  1. Konfirmasikan bahwa plugin diinstal:

$ fastlane

Outputnya akan menampilkan fastlane-plugin-firebase_app_distribution dalam daftar plugin yang terpasang.

  1. Setelah mengonfirmasi plugin terinstal, pilih opsi 0 untuk membatalkan.

Otentikasi proyek Firebase Anda

Untuk menggunakan plugin fastlane , pertama-tama Anda harus mengautentikasi project Firebase Anda.

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

$ firebase login

  1. Saat perintah mencetak tautan autentikasi, buka tautan di browser.
  2. Saat diminta, masuk ke Akun Google Anda dan berikan izin untuk mengakses proyek Firebase Anda.

Distribusikan aplikasi Anda

Anda sekarang siap untuk mendistribusikan aplikasi Anda.

  1. Di bagian atas ./fastlane/Fastfile Anda, tentukan variabel bernama firebase_app_id . Ganti <your_app_id> dengan Firebase App ID untuk aplikasi yang Anda buat (ini dapat ditemukan di halaman pengaturan proyek ).

Fastfile ditulis dalam Ruby, jadi gunakan sintaks Ruby untuk mendefinisikan 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 membuat aplikasi Anda dan membuat distribusi.

$ fastlane distribute

Pada titik 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 menyegarkan Firebase console, Anda akan melihat rilis baru untuk aplikasi Anda.

c59dc1a94de3bf3c.png

5. Undang penguji untuk mengunduh aplikasi Anda

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

Tambahkan diri Anda sebagai penguji rilis

  1. Di bawah firebase_app_id di bagian atas Fastfile Anda, 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 larik app_testers menjadi string yang dipisahkan koma, yang diharapkan oleh parameter testers . Kemudian, teruskan hasilnya ke parameter testers 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 titik 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 jalur lagi.

$ fastlane distribute

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

2e0fc9603b868af8.png

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

Daftarkan perangkat uji Anda

Sebagai penguji, Anda harus masuk ke Google di perangkat percobaan untuk mengakses rilis aplikasi yang diundang 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 Distribusi Aplikasi, menggunakan klip web yang ditambahkan ke layar utama perangkat Anda.

  1. Di perangkat pengujian iOS Anda, buka email yang dikirim dari Firebase App Distribution dan ketuk tautan Memulai . Pastikan untuk membuka tautan di Safari.
  2. Anda sekarang berada di aplikasi web penguji App Distribution. Di halaman yang muncul, masuk dengan akun Google Anda dan ketuk Terima undangan.

d833407de251b89f.png

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

fd141215e54a938d.png

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

Menginstal profil memberi Firebase izin untuk:

  • Daftarkan perangkat uji dengan mengumpulkan ID perangkat unik (UDID) perangkat.

Firebase mengirimkan email kepada semua Pemilik dan Editor proyek Firebase yang berisi UDID perangkat uji.

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

Di aplikasi web penguji Distribusi Aplikasi, perangkat pengujian Anda sekarang terdaftar untuk rilis aplikasi Anda.

fe93d649dfa25877.png

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

7b9f665a63a384cf.png

Di bagian selanjutnya, Anda akan menambahkan UDID perangkat ke profil penyediaan aplikasi Anda, lalu membuat versi aplikasi yang berfungsi dengan perangkat pengujian Anda.

Ekspor UDID perangkat penguji Anda

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

  1. Untuk mengekspor semua UDID, buka tab Penguji & Grup .

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 baris perintah menggunakan fastlane , yang akan Anda lakukan di bagian berikutnya.

6. Perbarui profil penyediaan aplikasi Anda dan buat ulang

Sekarang, Anda akan menambahkan UDID perangkat uji 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 Anda, dan setel ke jalur file tempat UDID perangkat penguji Anda akan diunduh.
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 mengunduh 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 mengunduh UDID.

$ fastlane download_udids

  1. Cetak file yang diunduh, yang seharusnya berisi UDID perangkat uji.

$ cat tester_udids.txt

Perangkat tambahan ke konsol pengembang Apple

  1. Buat jalur berikut untuk menambahkan UDID ke daftar perangkat Anda di konsol pengembang 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. Kemudian, jalankan jalur:

$ fastlane add_new_devices

Anda kemudian akan melihat perangkat baru di daftar perangkat konsol pengembang Anda.

Tambahkan perangkat ke profil penyediaan Anda

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

Jalankan kembali jalur untuk membuat dan mengunggah

Sekarang, Anda akan memperbarui jalur distribute dengan jalur baru untuk menambahkan perangkat ke profil penyedia, membuat 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 titik 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

Unduh rilis dari perangkat uji

Sekarang setelah aplikasi Anda menyertakan UDID perangkat uji, mereka dapat dipasang ke perangkat uji.

e275f73d57cc8fb1.png

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

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

dad6d03b6ad78746.png

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

7. Selamat

Anda sekarang telah mengonfigurasi App Distribution dan fastlane untuk mengotomatiskan proses pengujian pra-rilis. Sekarang, saat 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 secara individual dari penguji, atau membuka konsol pengembang 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 integrasi berkelanjutan Anda.

Bacaan lebih lanjut