Fastlane — bu iOS va Android ilovalarini qurish, sinash va nashr qilishni avtomatlashtirish uchun ochiq manbali vositadir. Imzolash, qurish va do'konga yuklash uchun o'nlab buyruqlarni qo'lda bajarish o'rniga, dasturchi butun jarayonni Fastfile-da tasvirlaydi va uni bitta buyruq bilan ishga tushiradi. Fastlane Docs, 2025 ma'lumotlariga ko'ra, vosita dunyo bo'ylab 1,5 million dan ortiq loyihalarda qo'llaniladi. Fastlane App Store Connect, Google Play Console va kod imzolash tizimlari bilan ishlash uchun yordamchi dasturlarni birlashtiradi.
Asosiy
Fastlane — bu Ruby tilida yozilgan va MIT litsenziyasi ostida tarqatiladigan mobil qurilishlarni avtomatlashtirish vositasidir. U mobil dasturchining odatiy vazifalarini avtomatlashtiradi: ilovani qurish, testlarni ishga tushirish, skrinshotlar yaratish, kodni imzolash va ikkilik fayllarni App Store yoki Google Play-ga yuklash. 15–20 qo'lda bajariladigan buyruq o'rniga, dasturchi ssenariy nomi bilan bitta fastlane buyrug'ini ishga tushiradi.
Fastlane Xcode (xcodebuild, xcrun) va Android SDK (gradlew, apksigner, bundletool) yordamchi dasturlari uchun o'ram sifatida ishlaydi va ikkala platforma uchun yagona interfeysni taqdim etadi. Bu, ayniqsa, bitta ilovaning iOS va Android versiyalarini qo'llab-quvvatlaydigan jamoalar uchun qimmatlidir — bir xil Fastfile ikkala platforma uchun qurilishlarni parametrlardagi minimal farqlar bilan tavsiflashi mumkin.
GitHub ma'lumotlariga ko'ra, Fastlane 39 mingdan ortiq yulduzga ega va mobil ishlanmada avtomatlashtirish standarti hisoblanadi. Vosita hamjamiyat va Google kompaniyasi tomonidan qo'llab-quvvatlanadi — Fastlane Android ilovalarini Google Play Console-ga yetkazib berishning tavsiya etilgan usuli sifatida Firebase-ga integratsiyalangan.
Fastlane arxitekturasi uch darajaga qurilgan: actions (asosiy buyruqlar), lanes (ssenariylar) va vositalar (ixtisoslashgan yordamchi dasturlar). Actions — bu Fastlane-ning alohida funksiyalari bo'lib, ularning har biri aniq bir harakatni bajaradi: skrinshot yaratish, IPA qurish, TestFlight-ga yuklash. Lanes bir nechta actions-ni Fastfile-da tasvirlangan ketma-ket ssenariyga birlashtiradi.
Actions — bu Fastlane-ning qurilish bloklari. Har bir action parametrlarni qabul qiladi va bitta vazifani bajaradi. Masalan, gym action iOS ilovasini quradi, scan testlarni ishga tushiradi, pilot build-ni TestFlight-ga yuklaydi. Fastlane-da jami 200 dan ortiq o'rnatilgan actions mavjud, har biri uchun hujjatlar fastlane action [nomi] buyrug'i orqali mavjud.
Agar o'rnatilgan actions yetarli bo'lmasa, dasturchi Ruby tilida custom action yaratishi va uni Fastfile-ga ulashi mumkin. Maxsus actions Rubygems-da nashr etiladigan va loyiha ildizidagi FastfilePlugin fayli orqali o'rnatiladigan Fastlane plaginlari orqali tarqatiladi.
Lane — bu bir nechta actions-ni mantiqiy ketma-ketlikka birlashtiruvchi nomlangan avtomatlashtirish ssenariysi. Lane boshqa lanes-ni (private lanes) chaqirishi, parametrlarni uzatishi va xatolarni qayta ishlashi mumkin. Bu ssenariylar ierarxiyasini qurish imkonini beradi: asosiy qurish lane, deploy lane, to'liq CI/CD sikl lane.
Fastlane ixtisoslashgan vositalar to'plamini o'z ichiga oladi, ularning har biri mobil avtomatlashtirishning aniq bir vazifasini hal qiladi. Vositalar lanes ichidagi actions sifatida yoki to'g'ridan-to'g'ri buyruq satridan ishga tushiriladi. Keling, iOS va Android uchun CI/CD ning asosiy ehtiyojlarini qoplaydigan to'rtta asosiy vositani ko'rib chiqaylik.
| Vosita | Vazifasi | Buyruq |
|---|---|---|
| scan | iOS simulyatorida Unit va UI testlarini ishga tushirish | fastlane scan |
| gym | iOS uchun IPA yoki APP faylini qurish | fastlane gym |
| match | Sertifikatlar va provisioning profillarini Git orqali sinxronlash | fastlane match |
| deliver | Ikkilik fayl va metama'lumotlarni App Store Connect-ga yuklash | fastlane deliver |
| snapshot | Turli qurilmalarda avtomatik skrinshotlar yaratish | fastlane snapshot |
Scan Xcode testlarini ishga tushirishni soddalashtiradi, avtomatik ravishda mos simulyatorni tanlaydi va hisobotni formatlaydi. Gym ilovani optimal kompilyatsiya bayroqlari bilan quradi va turli qurilish turlari (development, adhoc, appstore) uchun exportOptions.plist-ni qo'llab-quvvatlaydi. Deliver nafaqat ikkilik faylni, balki skrinshotlar, tavsif, versiyalar va narxlarni yagona metama'lumotlar fayli orqali yuklash imkonini beradi.
Match vositasi alohida e'tiborga loyiq — u jamoada iOS sertifikatlarini saqlash va sinxronlash muammosini hal qiladi. Match sertifikatlar va provisioning profillarini shifrlaydi va Git omborida saqlaydi, dasturchilar esa fastlane match ishga tushirilganda ularni avtomatik ravishda oladi. Bu har bir ish joyini qo'lda sozlashni istisno qiladi.
Snapshot — bu mobil ilovaning turli qurilmalar va tillarda skrinshotlarini avtomatik yaratish vositasi. Snapshot iOS simulyatorlarida UI testlarini ishga tushiradi va testning har bir bosqichida ekran tasvirlarini oladi. Natijalar fastlane/screenshots katalogida saqlanadi va deliver orqali App Store Connect-ga yuklanishi mumkin.
Android uchun screengrab Android emulyatorlarida xuddi shunday vazifani bajaradi. Ikkala vosita ham lokalizatsiyani qo'llab-quvvatlaydi — skrinshotlar har bir til uchun yaratiladi, bu ko'p tilli ilovalar do'konlarida nashr qilish uchun materiallarni tayyorlashni soddalashtiradi.
iOS loyihalari uchun Fastlane Gemfile (gem fastlane o'rnatish) va fastlane katalogidagi Fastfile orqali sozlanadi. Dastlabki sozlash fastlane init buyrug'i bilan amalga oshiriladi, u asosiy kataloglar tuzilmasini yaratadi, App Store Connect ma'lumotlarini so'raydi va asosiy lanes bilan Fastfile shablonini yaratadi.
iOS uchun asosiy buyruq — fastlane match bo'lib, u sertifikatlar va provisioning profillarini olish uchun birinchi bo'lib bajarilishi kerak. Muvaffaqiyatli imzolashdan so'ng, Fastlane ilovani qurishi (gym), testlarni ishga tushirishi (scan) va ikkilik faylni yuklashi mumkin (pilot yoki deliver).
# iOS ilovasi uchun Fastfile
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: 'Yangi versiya TestFlight-ga yuklandi')
end
TestFlight bilan ishlash uchun pilot action-dan foydalaning — u IPA-ni yuklaydi va sinovchilarni boshqaradi. Fastlane upload_to_testflight (pilot sinonimi) ni qo'llab-quvvatlaydi va Apple build-ni qayta ishlashini kutishni avtomatik ravishda boshqaradi, bu 5 dan 30 daqiqagacha davom etishi mumkin.
Android loyihalari uchun Fastlane xuddi shunday sozlanadi, ammo Xcode vositalari o'rniga Gradle va Android SDK ishlatiladi. Fastlane Android uchun APK va AAB qurishni, apksigner yoki jarsigner orqali imzolashni, instrumental testlarni ishga tushirishni va Supply action orqali Google Play Console-ga yuklashni qo'llab-quvvatlaydi.
Asosiy farq — Android qurilishi match orqali sertifikatlarni boshqarishni talab qilmaydi (Android imzolash alohida saqlanadigan Keystore orqali boshqariladi). Fastlane Android uchun har qanday Gradle vazifalarini ishga tushirish uchun gradle action va Google Play bilan ishlash uchun supply action dan foydalanadi.
# Android ilovasi uchun Fastfile
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
Google Play Console bilan ishlash uchun Google Play API-ga kirish huquqiga ega Google Cloud xizmat hisobi talab qilinadi. Fastlane xizmat hisobining JSON kalitini SUPPLY_JSON_KEY muhit o'zgaruvchisi yoki supply action-dagi json_key parametri orqali qabul qiladi. Nashr treki internal, alpha, beta yoki production bo'lishi mumkin.
Fastlane Ruby skriptlarini bajaradigan har qanday CI/CD tizimlari bilan integratsiyalashadi: Jenkins, Travis CI, GitHub Actions, GitLab CI, Bitrise va CircleCI. Integratsiya gem fastlane o'rnatish va pipeline-ning script bosqichida fastlane [lane_name] buyrug'ini ishga tushirishdan iborat.
CI/CD uchun nozik ma'lumotlarni saqlash uchun muhit o'zgaruvchilarini sozlash muhim: MATCH_PASSWORD (sertifikatlarni shifrlash paroli), FASTLANE_USER (Apple ID), FASTLANE_PASSWORD (Apple ID paroli). Travis CI da o'zgaruvchilar travis encrypt orqali, GitHub Actions da — Secrets repository orqali shifrlanadi.
Tavsiya etilgan amaliyot — CI/CD da fastlane match ni readonly bayrog'i bilan ishlatish, bu sertifikatlar omboriga tasodifiy o'zgartirishlar kiritilishining oldini oladi. Android uchun Base64 kodlangan va muhit o'zgaruvchisida saqlangan Keystore-dan foydalaning, u before_install bosqichida shifrdan chiqariladi va vaqtinchalik faylga saqlanadi.
Fastlane Match — bu iOS sertifikatlari va provisioning profillarini boshqarishni avtomatlashtirish vositasi, Fastlane-ning jamoalar uchun eng qimmatli funksiyalaridan biri. Match barcha sertifikatlar va profillarni saqlaydigan shifrlangan Git omborini yaratadi (yoki mavjudidan foydalanadi) va ularni dasturchilar va CI/CD serverlari o'rtasida sinxronlaydi.
Match besh turdagi profillarni qo'llab-quvvatlaydi: development, adhoc, appstore, enterprise va developer_id. Har bir tur ombor ichidagi alohida katalogda saqlanadi. fastlane match development buyrug'i mahalliy mashinaga development sertifikatlarini o'rnatadi, fastlane match appstore esa CI da qurish uchun App Store profillarini o'rnatadi.
# Fastfile-da Match dan foydalanish
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
Match xavfsizligi Git-ga commit qilishdan oldin barcha fayllarni shifrlash orqali ta'minlanadi. Shifrlash paroli MATCH_PASSWORD muhit o'zgaruvchisi orqali o'rnatiladi va jamoa a'zolari uchun bir xil bo'lishi kerak. Match shifrlash uchun OpenSSL dan foydalanadi va parolni omborda ochiq matnda saqlamaydi.
Tez-tez so'raladigan savollar
Fastlane — bu iOS va Android ilovalari uchun Open Source avtomatlashtirish vositasi. U yagona konfiguratsiya fayli Fastfile va o'rnatilgan vositalar to'plami orqali qurish, sinash, kod imzolash va App Store va Google Play-ga yetkazib berishni avtomatlashtiradi.
Fastlane ning asosiy vositalari: scan (testlar), gym (iOS qurish), match (sertifikatlar), deliver (App Store), pilot (TestFlight), snapshot (skrinshotlar), supply (Google Play) va frameit (skrinshot ramkalari). Har bir vosita lane ichidagi action sifatida yoki buyruq satridan mavjud.
gem fastlane ni o'rnating, loyiha ildizida fastlane init ni bajaring. Qurish (gym) va testlar (scan) uchun lanes bilan Fastfile ni sozlang. Git ombori orqali sertifikatlarni boshqarish uchun Match ni sozlang. App Store Connect-ga yuklash uchun pilot yoki deliver bilan deploy lane qo'shing.
Package name bilan fastlane init ni bajaring. Gradle vazifalarini (assembleRelease, testReleaseUnitTest) ishga tushirish uchun gradle action dan foydalaning. Muhit o'zgaruvchilari orqali Keystore ni sozlang. AAB yoki APK ni Google Play Console-ga kerakli trekka yuklash uchun supply action dan foydalaning.
CI/CD serverida gem fastlane ni o'rnating va pipeline-ning script bosqichiga fastlane [lane_name] buyrug'ini qo'shing. FASTLANE_USER, FASTLANE_PASSWORD va MATCH_PASSWORD muhit o'zgaruvchilarini CI/CD maxfiy o'zgaruvchilarida sozlang. Sertifikatlardagi tasodifiy o'zgarishlarning oldini olish uchun CI da match readonly dan foydalaning.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.