Fastlane: Otomatisasi iOS pada Cruise Control
Diterbitkan: 2022-03-11Membuat perangkat lunak untuk iOS lebih dari sekadar menulis kode Objective-C atau Swift: Ini melibatkan mengetahui cara kerja UIKit, cara membuat sertifikat, cara memublikasikan aplikasi Anda ke toko, cara menangani ulasan aplikasi, dan banyak lagi. Jika Anda merasa daftar tugas abadi ini melelahkan, beberapa otomatisasi dalam alur kerja Anda adalah yang Anda butuhkan.
Temui Fastlane, alat yang dirancang untuk menghemat menit atau bahkan jam Anda dalam setiap penerapan.
Fastlane membantu Anda mengotomatiskan proses pengiriman versi beta ke Crashlytics, TestFlight, App Store, dan banyak lagi.
Dalam artikel ini, Anda akan mempelajari cara menggunakan Fastlane untuk mengotomatiskan alur kerja penerapan aplikasi iOS Anda. Meskipun kami akan fokus pada aspek iOS dari alat ini, Fastlane bekerja sama baiknya untuk otomatisasi pengembangan Android.
Memulai dengan Fastlane
Ada beberapa metode instalasi yang dapat Anda pilih, tergantung pada apa yang menurut Anda paling mudah. Jika Anda telah menginstal dan mengonfigurasi Homebrew, menginstal Fastlane hanya membutuhkan satu perintah:
brew cask install fastlane
Jika tidak, Fastlane menjadi alat berbasis Ruby, gem
selalu menjadi pilihan:
sudo gem install fastlane -NV
Atau, Anda selalu dapat mengunduh Fastlane dari situs web resminya.
Setelah Anda menginstal Fastlane, jalankan fastlane init
di direktori proyek Anda dan ikuti petunjuknya.
Otomatisasi Penerapan
Dengan Fastlane terinstal, Anda sekarang dapat menulis skrip Ruby untuk menunjukkan langkah demi langkah apa yang perlu Anda lakukan untuk mendapatkan penerapan Anda di tempat yang Anda inginkan. Ini dilakukan dengan menggunakan tindakan, alat, dan jalur.
Alat Fastlane, Tindakan, dan Plugin
Fastlane bekerja dengan memiliki alat pada intinya yang membantu Anda membangun aplikasi Anda. Selain alat build, ada lebih dari 170 integrasi bawaan dengan layanan seperti Crashlytics, HockeyApp, TestFlight, dan lebih banyak plugin yang dibuat dan dipublikasikan oleh pihak ketiga sehingga Anda dapat terhubung ke layanan lain dan banyak lagi.
Pada intinya, Anda mendapatkan alat utama yang memungkinkan Anda melakukan berbagai tugas: Dari mengambil tangkapan layar otomatis hingga membingkainya dan mengunggahnya ke toko, ini memungkinkan Anda menjalankan semua pengujian secara otomatis sebelum membangun aplikasi.
Tindakan adalah alat inti yang dimiliki Fastlane, dan plugin adalah cara untuk menambahkan tindakan pihak ketiga ke pengaturan Fastlane Anda.
jalur
Fastlane menggunakan jalur yang pada dasarnya mengelompokkan daftar tindakan atau plugin secara berurutan sehingga Anda dapat mencapai hasil yang sama setiap saat.
Saat menjalankan jalur, setiap tindakan akan mengekspor variabel lingkungan, dan tindakan berikut akan secara otomatis membuat variabel ini tetap berjalan. Misalnya, menggunakan aksi gym
akan menghasilkan jalur file .ipa
yang dihasilkan, dan menggunakan crashlytics
akan mengakses lokasi .ipa
ini untuk mengunggah file ini ke sistem distribusi layanan beta.
Menggunakan Fastlane dengan iOS
Anda memulai dengan klien Toptal baru yang menginginkan aplikasi yang sangat sederhana. Desain sudah selesai, dan aplikasi dapat dikodekan dalam beberapa minggu. Langkah selanjutnya adalah mulai mengkodekannya, dan selama proses iterasi Anda, Anda akan mengirim aplikasi beta setiap beberapa minggu ke klien sehingga mereka dapat melihat kemajuan Anda dan memberi Anda umpan balik tentang cara kerjanya.
Setiap kali Anda mengirim versi beta ke klien, Anda akan melalui daftar periksa dasar: menandatangani aplikasi, mengunggahnya ke layanan beta, menambahkan versi baru ke dalamnya, dll. Tambahkan ke ini hal-hal yang harus Anda lakukan sekali (setiap tahun): menandatangani sertifikat, menandatangani sertifikat pemberitahuan push (jika diperlukan), dan banyak lagi.
Dengan Fastlane, semua ini sekarang dapat terjadi secara otomatis!
Mengirim ke Crashlytics Beta
Misalnya, Anda perlu membuat sertifikat penandatanganan dan profil penyediaan untuk membagikan aplikasi Anda melalui Crashlytics Beta.
Fastlane memiliki tindakan yang disebut match
yang, setelah Anda mengaturnya, melakukan hal berikut:
- Buat sertifikat penandatanganan distribusi.
- Buat profil penyediaan ad-hoc (terlampir pada sertifikat dari #1).
- Simpan sertifikat dan profil dari #1 dan #2 ke repositori Git, dienkripsi menggunakan OpenSSL.
Pengaturannya sederhana.
Pertama, jalankan fastlane match init
untuk memulai dan, setelah Anda mengatur repo Git Anda, cukup panggil fastlane match adhoc
untuk mendapatkan profil penyediaan ad-hoc atau jalankan fastlane match appstore
untuk mendapatkan sertifikat App Store.

Keuntungan menggunakan match
adalah Anda dapat menyinkronkan sertifikat dengan sangat mudah antar komputer—dan antar rekan tim—tanpa harus mencabut sertifikat lagi, dan kecepatan yang Anda peroleh. Hanya menjalankan fastlane match appstore
memberi Anda sertifikat dalam beberapa detik.
Nah, sekarang kita memiliki sertifikat dan penyediaan yang kita butuhkan, mari kita rilis ke Crashlytics.
Alur kerja umum untuk mengirimkan aplikasi Anda ke Crashlytics Fabric mencakup langkah-langkah berikut:
- Buat sertifikat penandatanganan distribusi.
- Buat profil penyediaan ad-hoc (terlampir pada sertifikat dari #1).
- Setel aplikasi Anda untuk menggunakan profil penyediaan dari #2.
- Arsipkan aplikasi Anda.
- Buka Fabric dan ikuti langkah-langkah untuk mengirim aplikasi ke penguji beta.
Fastlane menggantikan tugas dengan ini:
platform :ios do lane :beta do match(type: “adhoc”) gym crashlytics end end
Sekarang, menjalankan fastlane beta
dari terminal Anda akan meluncurkan skrip ini.
Ini pertama-tama akan memanggil match
, tindakan yang menangani pembuatan dan pembaruan sertifikat penandatanganan dan profil penyediaan, lalu memanggil gym
, tindakan yang membangun dan mengemas aplikasi untuk Anda, menggunakan sertifikat dan profil yang sama yang dibuat sebelumnya, dan terakhir, crashlytics
, yaitu akan mengambil .ipa
ditandatangani ini dan mengunggahnya ke layanan Crashlytics.
Semua langkah tersebut dipanggil, selalu, dalam urutan yang sama, membuat file yang dihasilkan lebih dapat diprediksi dan mengurangi kesalahan.
MacBook-Pro:TestProject user$ fastlane beta +------+-------------------------------------+-------------+ | fastlane summary | +------+-------------------------------------+-------------+ | Step | Action | Time (in s) | +------+-------------------------------------+-------------+ | 1 | Verifying required fastlane version | 0 | | 2 | match | 57 | | 3 | gym | 592 | | 4 | crashlytics | 195 | +------+-------------------------------------+-------------+ [20:25:13]: fastlane.tools just saved you 14 minutes!
Jadi itu adalah pengaturan dasar tentang cara menjalankan Fastlane untuk mengirim aplikasi Anda ke Crashlytics. Apa lagi yang bisa kita otomatisasi?
Meningkatkan Versi Build
Kita dapat, misalnya, mengatur bahwa setiap kali kita akan mengirim beta, kita ingin meningkatkan nomor versi build.
Ini dapat dicapai dengan menggunakan tindakan yang disebut increment_build_number
yang dapat dipanggil dari terminal dengan fastlane run increment_build_number
atau digunakan inline di jalur beta kami:
platform :ios do lane :beta do increment_build_number match(type: “adhoc”) gym crashlytics end end
Selamat! Anda sekarang memiliki skrip penerapan otomatis yang juga menambah nomor versi build Anda. Satu-satunya peringatan adalah, begitu Anda memanggil jalur ini, Anda akan memiliki file yang diubah di proyek Anda (atau, setidaknya, yang menyertakan nomor build).
Jika Anda berencana untuk melakukan perubahan itu ke repositori, ada tindakan untuk itu: commit_version_bump
. Tindakan ini mengkomit file dengan nomor versi baru.
platform :ios do lane :beta do increment_build_number match(type: "adhoc") gym crashlytics commit_version_bump( xcodeproj:"myProject.xcodeproj", ) end end
Ini akan mengkomit file dengan pesan komit seperti ini "Versi Bump to 27".
Crashlytics ke TestFlight
Nah, jika Anda sampai sejauh ini, Anda dapat memiliki penerapan otomatis ke Crashlytics dalam waktu yang sangat singkat yang akan menghemat banyak waktu dalam jangka panjang. Bagian terbaiknya adalah, jika Anda ingin mengirim aplikasi ke TestFlight, yang perlu Anda lakukan hanyalah mengubah crashlytics
menjadi pilot
.
Atau, Anda dapat membuat jalur terpisah untuk itu:
platform :ios do lane :beta-testflight do increment_build_number match(type: "adhoc") gym pilot commit_version_bump( xcodeproj:"myProject.xcodeproj", ) end end
Otomatisasi iOS Menjadi Sederhana
Fastlane sederhana dan mudah digunakan. Namun, ini membawa nilai luar biasa untuk alur kerja pengembangan iOS reguler Anda dengan menyelamatkan Anda dari melakukan hal-hal kasar dan berjam-jam waktu Anda yang pada akhirnya akan Anda buang.
Saya harap pengenalan Fastlane ini bermanfaat bagi Anda. Anda dapat melihat dokumentasi resmi untuk mempelajari lebih lanjut tentang Fastlane, terutama daftar tindakan jika Anda mencari beberapa inspirasi tentang apa yang dapat Anda otomatisasi untuk proyek iOS Anda saat ini dan berikutnya.