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 bisa mendapatkan build Ad Hoc dengan cepat ke penguji ' tangan.

Apa yang akan Anda pelajari?

  • Cara mengunggah dan mendistribusikan aplikasi iOS pra-rilis (Ad Hoc) kepada penguji menggunakan Firebase App Distribution dan fastlane .
  • Cara mendaftar sebagai penguji dan mengunduh aplikasi terdistribusi di perangkat uji.
  • Cara cepat mendaftarkan perangkat uji dengan mengekspor UDID perangkat uji dengan plugin fastlane App Distribution.
  • Cara memperbarui profil penyediaan aplikasi Anda dan mengunggahnya kembali 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 mengunduh rilis.

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

2. Memulai

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 "Pengaturan manual." Anda akan melihat subdirektori bernama fastlane yang berisi Fastfile , Appfile , dan Pluginfile , yang akan Anda gunakan untuk mengonfigurasi fastlane .

3. Bangun aplikasi Anda dengan fastlane

Bangun aplikasi Anda

  1. Setel 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 build_app (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 Rantai Kunci 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 Anda), 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

Sekarang setelah Anda membuat aplikasi, Anda siap untuk 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 iOS Firebase 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 bawah bagian Rilis & Monitor, klik Distribusi Aplikasi .
  2. Setelah menerima persyaratan, klik "Mulai" untuk mengaktifkan Distribusi Aplikasi untuk aplikasi Anda.

460213326c2784ae.png

Siapkan distribusi di fastlane

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

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

$ fastlane add_plugin firebase_app_distribution

  1. Konfirmasikan bahwa plugin telah diinstal:

$ fastlane

Outputnya harus menunjukkan fastlane-plugin-firebase_app_distribution dalam daftar plugin yang diinstal.

  1. Setelah mengkonfirmasi plugin diinstal, pilih opsi 0 untuk membatalkan.

Otentikasi proyek Firebase Anda

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

  1. Jalankan perintah berikut:

$ fastlane run firebase_app_distribution_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.

Salin kode yang dihasilkan dari browser login dan rekatkan ke baris perintah.

  1. Tindakan login kemudian mencetak token penyegaran, yang digunakan plugin Distribusi Aplikasi untuk mengautentikasi dengan Firebase:

dbd61c40c4131158.png

  1. Lewati token dengan menyetel variabel lingkungan FIREBASE_TOKEN :

$ export FIREBASE_TOKEN= <token>

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 ID Aplikasi Firebase untuk aplikasi yang Anda buat (ini dapat ditemukan di halaman setelan 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 pembangunan, 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 jalur baru untuk membangun 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 konsol Firebase, 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 akan 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 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 lainnya yang ingin Anda coba.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
  1. Terapkan metode Ruby's Array#join untuk mengubah array app_testers menjadi string yang dipisahkan koma, yang diharapkan oleh parameter testers . Kemudian, berikan 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 Firebase console, 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 penguji pertama! Lanjutkan bagian di bawah ini untuk menyiapkan sebagai penguji di perangkat pengujian Anda.

Daftarkan perangkat uji Anda

Sebagai penguji, Anda harus masuk ke Google di perangkat pengujian untuk mengakses rilis aplikasi yang telah 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 App Distribution, menggunakan klip web yang ditambahkan ke layar beranda 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 di aplikasi Pengaturan.

Menginstal profil memberikan izin kepada Firebase untuk:

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

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

  • Pasang klip web ke layar beranda perangkat uji. Klip web membuka aplikasi web penguji Distribusi Aplikasi, yang memungkinkan Anda menginstal dan mengakses semua aplikasi pengujian Anda.

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

fe93d649dfa25877.png

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

7b9f665a63a384cf.png

Di bagian berikutnya, Anda akan menambahkan UDID perangkat ke profil penyediaan aplikasi Anda dan kemudian membangun versi aplikasi Anda yang berfungsi dengan perangkat pengujian Anda.

Ekspor UDID perangkat penguji Anda

Sebagai pengembang, 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 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 bangun kembali

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

Tambahkan perangkat 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 Anda 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 membangun dan mengunggah

Sekarang, Anda akan memperbarui jalur distribute Anda dengan jalur baru untuk menambahkan perangkat ke profil penyediaan, membangun kembali aplikasi, dan kemudian 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

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

e275f73d57cc8fb1.png

  1. Pada perangkat uji Anda, kembali ke aplikasi web penguji App Distribution menggunakan tautan di email, atau ikon di layar beranda perangkat.

Saat Anda menavigasi ke aplikasi codelab UDID, Anda dapat melihat bahwa rilis siap untuk diunduh.

ayah6d03b6ad78746.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 Anda. Sekarang, ketika Anda ingin mengundang penguji tambahan, atau menambahkan UDID mereka ke aplikasi Anda, 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 profil penyediaan. Anda bahkan tidak perlu membuka XCode!

Alur kerja ini mudah diatur untuk dijalankan setiap jam atau setiap hari di lingkungan integrasi berkelanjutan Anda.

Bacaan lebih lanjut