Fastlane adalah alat sumber terbuka untuk mengotomatiskan pembuatan, pengujian, dan publikasi aplikasi iOS dan Android. Alih-alih menjalankan puluhan perintah secara manual untuk penandatanganan, pembuatan, dan unggahan ke toko, pengembang mendeskripsikan seluruh proses di Fastfile dan menjalankannya dengan satu perintah. Menurut Fastlane Docs, 2025, alat ini digunakan di lebih dari 1,5 juta proyek di seluruh dunia. Fastlane menggabungkan utilitas untuk bekerja dengan App Store Connect, Google Play Console, dan sistem penandatanganan kode.
Poin Utama
Fastlane adalah alat otomatisasi build seluler, ditulis dalam Ruby dan didistribusikan di bawah lisensi MIT. Ia mengotomatiskan tugas rutin pengembang seluler: membangun aplikasi, menjalankan pengujian, membuat tangkapan layar, menandatangani kode, dan mengunggah file biner ke App Store atau Google Play. Alih-alih 15–20 perintah manual, pengembang menjalankan satu perintah fastlane dengan nama skenario.
Fastlane bekerja sebagai pembungkus untuk utilitas Xcode (xcodebuild, xcrun) dan Android SDK (gradlew, apksigner, bundletool), menyediakan antarmuka terpadu untuk kedua platform. Ini sangat berharga bagi tim yang memelihara versi iOS dan Android dari aplikasi yang sama — Fastfile yang identik dapat mendeskripsikan build untuk kedua platform dengan perbedaan parameter yang minimal.
Menurut GitHub, Fastlane memiliki lebih dari 39 ribu bintang dan merupakan standar otomatisasi dalam pengembangan seluler. Alat ini didukung oleh komunitas dan perusahaan Google — Fastlane terintegrasi ke dalam Firebase sebagai cara yang direkomendasikan untuk mengirimkan aplikasi Android ke Google Play Console.
Arsitektur Fastlane dibangun di atas tiga tingkat: actions (perintah dasar), lanes (skenario), dan alat (utilitas khusus). Actions adalah fungsi Fastlane individual, masing-masing melakukan tindakan tertentu: membuat tangkapan layar, membangun IPA, mengunggah ke TestFlight. Lanes menggabungkan beberapa actions ke dalam skenario berurutan yang dijelaskan dalam Fastfile.
Actions adalah blok bangunan Fastlane. Setiap action menerima parameter dan melakukan satu tugas. Misalnya, action gym membangun aplikasi iOS, scan menjalankan pengujian, pilot mengunggah build ke TestFlight. Fastlane memiliki lebih dari 200 actions bawaan, dokumentasi untuk setiap action tersedia melalui perintah fastlane action [nama].
Jika actions bawaan tidak mencukupi, pengembang dapat membuat custom action di Ruby dan menghubungkannya di Fastfile. Custom actions didistribusikan melalui plugin Fastlane, yang dipublikasikan di Rubygems dan diinstal melalui file FastfilePlugin di root proyek.
Lane adalah skenario otomatisasi bernama yang menggabungkan beberapa actions ke dalam urutan logis. Lane dapat memanggil lanes lain (private lanes), meneruskan parameter, dan menangani kesalahan. Ini memungkinkan pembangunan hierarki skenario: lane build dasar, lane deploy, lane siklus CI/CD lengkap.
Fastlane mencakup serangkaian alat khusus, yang masing-masing memecahkan tugas otomatisasi seluler tertentu. Alat dijalankan sebagai actions di dalam lanes atau langsung dari baris perintah. Mari kita lihat empat alat utama yang mencakup kebutuhan CI/CD dasar untuk iOS dan Android.
| Alat | Fungsi | Perintah |
|---|---|---|
| scan | Menjalankan pengujian Unit dan UI di simulator iOS | fastlane scan |
| gym | Membangun file IPA atau APP untuk iOS | fastlane gym |
| match | Sinkronisasi sertifikat dan provisioning profiles melalui Git | fastlane match |
| deliver | Mengunggah file biner dan metadata ke App Store Connect | fastlane deliver |
| snapshot | Pembuatan tangkapan layar otomatis di berbagai perangkat | fastlane snapshot |
Scan menyederhanakan menjalankan pengujian Xcode, secara otomatis memilih simulator yang sesuai dan memformat laporan. Gym membangun aplikasi dengan flag kompilasi optimal dan mendukung exportOptions.plist untuk berbagai jenis build (development, adhoc, appstore). Deliver memungkinkan mengunggah tidak hanya file biner, tetapi juga tangkapan layar, deskripsi, versi, dan harga melalui satu file metadata.
Alat Match layak mendapatkan perhatian khusus — ia memecahkan masalah penyimpanan dan sinkronisasi sertifikat iOS dalam tim. Match mengenkripsi dan menyimpan sertifikat serta provisioning profiles di repositori Git, dan pengembang mendapatkannya secara otomatis saat menjalankan fastlane match. Ini menghilangkan konfigurasi manual setiap tempat kerja.
Snapshot adalah alat untuk membuat tangkapan layar aplikasi seluler secara otomatis di berbagai perangkat dan bahasa. Snapshot menjalankan pengujian UI di simulator iOS, mengambil tangkapan layar di setiap langkah pengujian. Hasilnya disimpan di direktori fastlane/screenshots dan dapat diunggah ke App Store Connect melalui deliver.
Untuk Android screengrab menjalankan fungsi serupa di emulator Android. Kedua alat mendukung lokalisasi — tangkapan layar dibuat untuk setiap bahasa, yang menyederhanakan persiapan materi untuk publikasi di toko aplikasi multibahasa.
Untuk proyek iOS, Fastlane dikonfigurasi melalui Gemfile (instalasi gem fastlane) dan Fastfile di direktori fastlane. Konfigurasi awal dilakukan dengan perintah fastlane init, yang membuat struktur direktori dasar, meminta data App Store Connect, dan menghasilkan template Fastfile dengan lanes dasar.
Perintah utama untuk iOS — fastlane match — harus dijalankan terlebih dahulu untuk mendapatkan sertifikat dan provisioning profiles. Setelah penandatanganan berhasil, Fastlane dapat membangun aplikasi (gym), menjalankan pengujian (scan), dan mengunggah file biner (pilot atau deliver).
# Fastfile untuk aplikasi iOS
default_platform(:ios)
lane :build do
cocoapods
scan(scheme: 'App', devices: ['iPhone 15'])
gym(scheme: 'App', export_method: 'app-store')
end
lane :deploy do
match(type: 'appstore')
build
pilot(skip_waiting_for_build_processing: true)
slack(message: 'Versi baru telah diunggah ke TestFlight')
end
Untuk bekerja dengan TestFlight gunakan action pilot — ia mengunggah IPA dan mengelola penguji. Fastlane mendukung upload_to_testflight (sinonim untuk pilot) dan secara otomatis menangani penantian pemrosesan build oleh Apple, yang dapat memakan waktu 5 hingga 30 menit.
Untuk proyek Android, Fastlane dikonfigurasi dengan cara yang sama, tetapi alih-alih alat Xcode, Gradle dan Android SDK digunakan. Fastlane untuk Android mendukung pembangunan APK dan AAB, penandatanganan melalui apksigner atau jarsigner, menjalankan pengujian instrumental, dan unggahan ke Google Play Console melalui action Supply.
Perbedaan utama — build Android tidak memerlukan manajemen sertifikat melalui match (penandatanganan Android dikelola melalui Keystore, yang disimpan secara terpisah). Fastlane untuk Android menggunakan action gradle untuk menjalankan tugas Gradle apa pun dan action supply untuk bekerja dengan Google Play.
# Fastfile untuk aplikasi Android
default_platform(:android)
lane :build do
gradle(task: 'clean assembleRelease')
gradle(task: 'testReleaseUnitTest')
end
lane :deploy do
build
supply(
track: 'internal',
aab: 'app/build/outputs/bundle/release/app-release.aab'
)
end
Untuk bekerja dengan Google Play Console diperlukan akun layanan Google Cloud dengan akses ke API Google Play. Fastlane menerima kunci JSON akun layanan melalui variabel lingkungan SUPPLY_JSON_KEY atau parameter json_key di action supply. Trek publikasi bisa internal, alpha, beta, atau production.
Fastlane terintegrasi dengan sistem CI/CD apa pun yang dapat menjalankan skrip Ruby: Jenkins, Travis CI, GitHub Actions, GitLab CI, Bitrise, dan CircleCI. Integrasi meliputi instalasi gem fastlane dan menjalankan perintah fastlane [lane_name] di tahap script pipeline.
Untuk CI/CD, penting untuk mengatur variabel lingkungan untuk menyimpan data sensitif: MATCH_PASSWORD (kata sandi enkripsi sertifikat), FASTLANE_USER (Apple ID), FASTLANE_PASSWORD (kata sandi Apple ID). Di Travis CI, variabel dienkripsi melalui travis encrypt, di GitHub Actions — melalui Secrets repository.
Praktik yang direkomendasikan — gunakan fastlane match di CI/CD dengan flag readonly untuk mencegah perubahan tidak sengaja pada repositori sertifikat. Untuk Android gunakan Keystore, yang dienkode dalam Base64 dan disimpan dalam variabel lingkungan, yang didekripsi dan disimpan ke file sementara pada tahap before_install.
Fastlane Match adalah alat untuk mengotomatiskan manajemen sertifikat iOS dan provisioning profiles, salah satu fungsi Fastlane yang paling berharga bagi tim. Match membuat repositori Git terenkripsi (atau menggunakan yang sudah ada) di mana semua sertifikat dan profil disimpan, disinkronkan antara pengembang dan server CI/CD.
Match mendukung lima jenis profil: development, adhoc, appstore, enterprise, dan developer_id. Setiap jenis disimpan di direktori terpisah di dalam repositori. Perintah fastlane match development menginstal sertifikat development di mesin lokal, dan fastlane match appstore menginstal profil App Store untuk build di CI.
# Menggunakan Match di Fastfile
lane :setup_signing do
match(
type: 'appstore',
readonly: true,
git_branch: 'main'
)
end
lane :update_profiles do
match(
type: 'development',
force: true,
app_identifier: ['com.example.app', 'com.example.app.watchkitapp']
)
end
Keamanan Match dijamin dengan enkripsi semua file sebelum commit ke Git. Kata sandi enkripsi diatur melalui variabel lingkungan MATCH_PASSWORD dan harus sama untuk semua anggota tim. Match menggunakan OpenSSL untuk enkripsi dan tidak menyimpan kata sandi dalam teks biasa di repositori.
Pertanyaan yang Sering Diajukan
Fastlane adalah alat otomatisasi Open Source untuk aplikasi iOS dan Android. Ia mengotomatiskan pembangunan, pengujian, penandatanganan kode, dan pengiriman ke App Store dan Google Play melalui satu file konfigurasi Fastfile dan serangkaian alat bawaan.
Alat utama Fastlane: scan (pengujian), gym (build iOS), match (sertifikat), deliver (App Store), pilot (TestFlight), snapshot (tangkapan layar), supply (Google Play), dan frameit (bingkai untuk tangkapan layar). Setiap alat tersedia sebagai action di dalam lane atau dari baris perintah.
Instal gem fastlane, jalankan fastlane init di root proyek. Konfigurasikan Fastfile dengan lanes untuk build (gym) dan pengujian (scan). Atur Match untuk manajemen sertifikat melalui repositori Git. Tambahkan lane deploy dengan pilot atau deliver untuk unggahan ke App Store Connect.
Jalankan fastlane init dengan menyebutkan package name. Gunakan action gradle untuk menjalankan tugas Gradle (assembleRelease, testReleaseUnitTest). Konfigurasikan Keystore melalui variabel lingkungan. Gunakan action supply untuk mengunggah AAB atau APK ke Google Play Console di trek yang diinginkan.
Instal gem fastlane di server CI/CD dan tambahkan perintah fastlane [lane_name] ke tahap script pipeline. Atur variabel lingkungan FASTLANE_USER, FASTLANE_PASSWORD, dan MATCH_PASSWORD di variabel rahasia CI/CD. Gunakan match readonly untuk CI guna menghindari perubahan tidak sengaja pada sertifikat.
Kesimpulan
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