Fastlane — alat otomatisasi build dan publikasi aplikasi mobile untuk iOS dan Android. Fastlane mengelola penandatanganan kode, build, menjalankan tes, membuat screenshot, dan mengunggah ke App Store Connect dan Google Play Console. Ini adalah standar de facto untuk CI/CD dalam pengembangan mobile.
Kesimpulan utama
Fastlane — adalah alat open-source yang mengotomatiskan tugas rutin pengembangan mobile: membangun aplikasi, menjalankan tes, membuat screenshot, mengelola sertifikat, mengunggah build ke TestFlight, App Store, dan Google Play. Fastlane ditulis dalam Ruby dan didistribusikan melalui RubyGems dengan perintah gem install fastlane.
Fastlane muncul pada tahun 2015 sebagai alat iOS, tetapi dengan cepat berkembang ke Android. Saat ini, ini adalah ekosistem puluhan actions — perintah bawaan yang dapat digabungkan dalam skenario yang disebut lanes. Setiap lane melakukan tugas tertentu: misalnya, build_release membangun versi rilis, dan deploy_beta mengunggah build ke TestFlight.
Fastlane digunakan oleh perusahaan seperti Uber, Airbnb, Snapchat, Twitter, dan Shopify. Menurut survei tahun 2024, lebih dari 60% pengembang iOS menggunakan Fastlane dalam proyek mereka. Alat ini mendukung baik eksekusi lokal maupun integrasi dengan sistem CI cloud, menjadikannya standar de facto untuk CI/CD mobile.
# Instalasi Fastlane
sudo gem install fastlane -NV
# Inisialisasi dalam proyek
fastlane init
Setelah inisialisasi, Fastlane membuat direktori fastlane/ dengan tiga file: Fastfile (skenario), Appfile (pengaturan aplikasi), dan Matchfile (pengaturan sertifikat). Struktur ini tetap sama untuk kedua platform — iOS dan Android.
File konfigurasi utama Fastlane — Fastfile. Berada di direktori fastlane/ di root proyek. Fastfile ditulis dalam Ruby: setiap lane adalah blok bernama dengan urutan actions. Lane dapat menerima parameter, memanggil lane lain, dan mengembalikan nilai.
# fastlane/Fastfile — contoh untuk iOS
default_platform(:ios)
platform :ios do
desc "Build and upload to TestFlight"
lane :beta do
match(type: "appstore")
gym(scheme: "MyApp", configuration: "Release")
pilot(skip_waiting_for_build: true)
end
desc "Deploy to App Store"
lane :release do
ensure_git_status_clean
match(type: "appstore")
gym(scheme: "MyApp")
deliver(
skip_metadata: true,
skip_screenshots: true
)
push_to_git_remote(tags: true)
end
end
Setiap lane dijalankan dengan perintah fastlane ios beta atau fastlane ios release. Fastfile mendukung variabel, kondisi, perulangan, dan pemanggilan skrip eksternal — ini adalah file Ruby yang lengkap. Pengembang dapat menggunakan kembali kode melalui private_lane (metode lokal) dan import dari Fastfile lain.
Fastlane menyediakan lebih dari 200 actions bawaan untuk sebagian besar tugas. Jika action yang diperlukan tidak ada, Anda dapat menulis action sendiri dalam Ruby atau memanggil perintah shell melalui sh("..."). Actions dapat menerima parameter — pengaturan build, jalur, token akses — dan mengembalikan hasil untuk digunakan di langkah berikutnya.
Fastlane untuk iOS memecahkan tiga masalah utama: pengelolaan sertifikat dan provisioning profile, build IPA melalui Xcode, dan publikasi ke App Store Connect dan TestFlight. Masing-masing tugas ini ditangani oleh action terpisah.
match — action untuk pengelolaan sertifikat. Menyimpan semua sertifikat dan provisioning profile di repositori Git terenkripsi. Setiap pengembang dan server CI menggunakan set file yang sama, yang menghilangkan konflik dan masalah dengan sertifikat kedaluwarsa. Match secara otomatis memperbarui profil saat perangkat baru ditambahkan.
sigh — membuat dan mengunduh provisioning profile melalui Apple Developer Portal. Digunakan ketika perlu mendapatkan profil dengan cepat untuk tipe tertentu: development, ad-hoc, atau appstore.
gym — pembuatan IPA. Gym membungkus xcodebuild dengan parameter optimal, secara otomatis memilih skema, konfigurasi, opsi ekspor, dan membuat IPA yang ditandatangani. Contoh: gym(scheme: "MyApp", export_method: "app-store").
pilot — pengelolaan TestFlight. Mengunggah build, menambahkan tester, melacak status tinjauan. deliver — publikasi lengkap di App Store, termasuk metadata, screenshot, harga, dan versi.
# Membangun dan mempublikasikan aplikasi iOS
lane :deploy_ios do
cocoapods
match(type: "appstore", readonly: true)
gym(scheme: "MyApp", export_method: "app-store")
pilot(changelog: "Bug fixes and performance improvements")
end
Untuk bekerja dengan App Store Connect diperlukan token akses. Fastlane mendukung dua metode autentikasi: App Store Connect API Key (disarankan) dan Apple ID dengan autentikasi dua faktor. Kunci API lebih nyaman untuk CI/CD karena tidak memerlukan input kata sandi interaktif.
| Action | Tujuan | Padanan manual |
|---|---|---|
match | Pengelolaan sertifikat dan profil | Apple Developer Portal |
sigh | Pembuatan provisioning profile | Xcode + Developer Portal |
gym | Pembuatan IPA | xcodebuild + xcrun |
pilot | Unggah ke TestFlight | Xcode Organizer |
deliver | Publikasi di App Store | App Store Connect Web |
scan | Menjalankan tes UI | xcodebuild test |
Di Android, Fastlane mengotomatiskan build melalui Gradle, penandatanganan APK dan AAB, unggah ke Google Play Console dan Firebase App Distribution.
gradle — action utama untuk build Android. Memanggil Gradle wrapper dengan tugas yang diperlukan: gradle(task: "assembleRelease") atau gradle(task: "bundleRelease") untuk AAB. Flag, variabel lingkungan, dan jalur ke gradle.properties dapat diteruskan.
supply — unggah APK atau AAB ke Google Play Console. Supply mengelola versi, track (internal, alpha, beta, production), catatan rilis, harga, dan negara distribusi. Contoh: supply(track: "beta", release_status: "completed").
screengrab — pembuatan screenshot untuk Google Play. Menjalankan tes instrumentasi yang mengambil screenshot layar aplikasi di berbagai perangkat dan bahasa. Screenshot yang diperoleh diunggah melalui supply.
# Membangun dan mempublikasikan aplikasi Android
lane :deploy_android do
gradle(task: "clean bundleRelease")
supply(
track: "beta",
release_status: "completed",
version_code: 42
)
end
| Action | Tujuan | Padanan manual |
|---|---|---|
gradle | Build melalui Gradle | ./gradlew assembleRelease |
supply | Unggah ke Google Play | Google Play Console Web |
screengrab | Pembuatan screenshot | Screenshot manual + ImageMagick |
firebase_app_distribution | Distribusi melalui Firebase | Firebase Console Upload |
Fastlane dirancang untuk bekerja dalam pipeline CI/CD. Ia menangani mode non-interaktif, variabel lingkungan, dan artefak build dengan benar. Di bawah ini — contoh integrasi dengan sistem CI populer.
Di GitHub Actions, Fastlane dijalankan sebagai skrip Ruby. Alur kerja tipikal: instalasi Ruby dan Fastlane, konfigurasi kunci (sertifikat, token API melalui secrets), menjalankan lane. Untuk iOS diperlukan runner macOS; Android berjalan di ubuntu-latest.
Di GitLab CI, Fastlane digunakan di .gitlab-ci.yml dengan skema serupa: instalasi dependensi, menjalankan fastlane, transfer artefak. GitLab CI mendukung runner macOS dan Linux.
Bitrise — CI/CD khusus untuk aplikasi mobile — memiliki dukungan bawaan untuk Fastlane. Bitrise Workflow dapat memanggil Fastlane Step atau menjalankan skrip arbitrer dengan fastlane. Bitrise mengelola sertifikat melalui manajer Code Signing-nya sendiri.
# Fastfile untuk CI/CD dengan eksekusi tes bersyarat
lane :ci_test do
scan(scheme: "MyApp", code_coverage: true)
end
lane :ci_beta do
ensure_git_status_clean
version_bump_podspec(path: "MyApp.podspec")
match(type: "appstore", readonly: true)
gym(scheme: "MyApp", export_method: "app-store")
pilot(distribute_external: true)
end
Aspek penting dari integrasi CI/CD — penyimpanan rahasia. Fastlane menggunakan file .env melalui dotenv dan variabel lingkungan. Untuk iOS, variabel kritis adalah: MATCH_PASSWORD, FASTLANE_APPLE_API_KEY, FASTLANE_APPLE_API_KEY_ID. Untuk Android: SUPPLY_JSON_KEY_DATA — konten akun layanan Google Play.
Fastlane mencakup lebih dari 200 actions bawaan. Di bawah ini — ikhtisar yang paling populer dengan indikasi platform dan tujuan.
| Action | Platform | Deskripsi |
|---|---|---|
gym | iOS | Pembuatan IPA dengan parameter xcodebuild yang dioptimalkan |
match | iOS | Sinkronisasi sertifikat dan provisioning profile melalui Git |
pilot | iOS | Unggah build ke TestFlight dan kelola tester |
deliver | iOS | Publikasi aplikasi di App Store dengan metadata |
scan | iOS | Menjalankan tes unit dan UI dengan pembuatan laporan |
gradle | Android | Menjalankan tugas Gradle: assemble, bundle, test |
supply | Android | Unggah APK dan AAB ke Google Play Console |
screengrab | Android | Screenshot otomatis untuk Google Play |
firebase_app_distribution | Android | Distribusi build melalui Firebase |
snapshot | iOS | Screenshot otomatis di simulator untuk App Store |
increment_build_number | iOS | Inkremen otomatis nomor build di proyek Xcode |
appcenter_upload | Keduanya | Unggah build ke App Center |
Untuk mencari action yang diperlukan, gunakan perintah fastlane action [nama], yang menampilkan dokumentasi, parameter, dan contoh. Daftar lengkap tersedia secara lokal: fastlane actions.
Fastlane juga mendukung plugins — ekstensi komunitas yang menambahkan actions baru. Plugin diinstal melalui fastlane add_plugin [nama] dan tersedia di registry RubyGems. Contoh plugin populer: fastlane-plugin-versioning (manajemen versi), fastlane-plugin-sentry (unggah debug symbols ke Sentry), fastlane-plugin-teams (notifikasi di Microsoft Teams).
Frequently Asked Questions
Fastlane — adalah alat otomatisasi build dan publikasi aplikasi mobile. Ia diperlukan untuk menggantikan operasi manual — build, penandatanganan, unggah ke toko — dengan satu perintah. Fastlane mengurangi waktu rilis dari jam menjadi menit dan menghilangkan kesalahan manusia saat publikasi.
Ya. Fastlane mendukung kedua platform secara independen. Untuk iOS diperlukan macOS, untuk Android cukup Linux. Dalam satu Fastfile, lanes dapat dipisahkan berdasarkan platform: platform :ios do ... end dan platform :android do ... end.
Melalui action match. Ia menyimpan sertifikat terenkripsi dan provisioning profile di repositori Git. Setiap pengembang mengkloning repositori, match mendekripsi file dengan kata sandi dari variabel MATCH_PASSWORD dan menginstalnya di keychain. Ini memecahkan masalah "build di mesin saya".
Ya. Fastlane memiliki action bawaan firebase_app_distribution untuk mengunggah APK dan IPA ke Firebase App Distribution. Juga tersedia firebase_app_distribution_add_testers untuk menambahkan tester. Alternatifnya — action appcenter_upload untuk App Center.
Fastlane diinstal melalui RubyGems: gem install fastlane -NV. Untuk iOS diperlukan macOS dengan Xcode; untuk Android — Linux atau macOS dengan JDK dan Android SDK. Di GitHub Actions ada action siap pakai ruby/setup-ruby untuk menginstal Ruby dan Fastlane. Variabel lingkungan diteruskan melalui secrets sistem CI.
Fastlane — adalah pustaka dan CLI untuk otomatisasi tugas build dan publikasi. Bitrise dan Jenkins — adalah platform CI/CD lengkap. Fastlane bekerja di dalamnya: Jenkins menjalankan Fastlane sebagai langkah pipeline, Bitrise memanggil Fastlane melalui Step khusus. Fastlane tidak menggantikan sistem CI, tetapi melengkapinya dengan spesifik mobile.
Summary
Kami akan mengembangkan aplikasi seluler turnkey
IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.
Baca juga