Fastlane: bu nima, buildlar va nashrlarni avtomatlashtirish

Muallif: IT Sectr Nashr etilgan: 2026-02-13 O'qish vaqti: 10 daq

Fastlane — iOS va Android uchun mobil ilovalarni build qilish va nashr etishni avtomatlashtirish vositasi. Fastlane kod imzolash, build qilish, testlarni ishga tushirish, skrinshotlar yaratish va App Store Connect hamda Google Play Console-ga yuklashni boshqaradi. Bu mobil ishlab chiqishda CI/CD uchun de-fakto standartdir.

Asosiy xulosalar

  • Fastlane avtomatlashtiradi mobil relizning butun pipeline-ni: build, test, imzolash va nashrni bitta buyruq bilan
  • Fastfile — Ruby-dagi konfiguratsiya fayli, unda lanes — nomlangan avtomatlashtirish stsenariylari tasvirlanadi
  • iOS va Android qo'llab-quvvatlashi — Fastlane Xcode, Gradle, App Store Connect, Google Play, TestFlight va Firebase bilan ishlaydi
  • match va sigh — iOS ishlab chiqish uchun sertifikatlar va provisioning profile-larni boshqarish
  • CI/CD integratsiyasi — Fastlane GitHub Actions, GitLab CI, Bitrise, Jenkins va CircleCI-ga o'rnatiladi

Fastlane — bu nima

Fastlane — bu mobil ishlab chiqishning kundalik vazifalarini avtomatlashtiradigan ochiq manbali vosita: ilovani build qilish, testlarni ishga tushirish, skrinshotlar yaratish, sertifikatlarni boshqarish, buildlarni TestFlight, App Store va Google Play-ga yuklash. Fastlane Ruby tilida yozilgan va gem install fastlane buyrug'i bilan RubyGems orqali tarqatiladi.

Fastlane 2015-yilda iOS vositasi sifatida paydo bo'ldi, ammo tezda Android-ga kengaydi. Bugungi kunda bu o'nlab actionlar — lanes deb ataladigan stsenariylarda birlashtirilishi mumkin bo'lgan o'rnatilgan buyruqlar ekotizimidir. Har bir lane aniq vazifani bajaradi: masalan, build_release reliz versiyasini yig'adi, deploy_beta esa buildni TestFlight-ga yuklaydi.

Fastlane Uber, Airbnb, Snapchat, Twitter va Shopify kabi kompaniyalar tomonidan qo'llaniladi. 2024-yil so'roviga ko'ra, iOS dasturchilarining 60% dan ortig'i o'z loyihalarida Fastlane-dan foydalanadi. Vosita ham lokal ishga tushirishni, ham bulutli CI tizimlari bilan integratsiyani qo'llab-quvvatlaydi, bu esa uni mobil CI/CD uchun de-fakto standartga aylantiradi.

ruby
# Fastlane-ni o'rnatish
sudo gem install fastlane -NV

# Loyihada initsializatsiya
fastlane init

Initsializatsiyadan so'ng Fastlane uchta faylli fastlane/ katalogini yaratadi: Fastfile (stsenariylar), Appfile (ilova sozlamalari) va Matchfile (sertifikat sozlamalari). Ushbu struktura ikkala platforma — iOS va Android uchun yagona bo'lib qoladi.

Fastfile va lanes

Fastlane-ning asosiy konfiguratsiya fayli — Fastfile. U loyiha ildizidagi fastlane/ katalogida joylashgan. Fastfile Ruby tilida yoziladi: har bir lane — action-lar ketma-ketligiga ega nomlangan blok. Lane parametrlarni qabul qilishi, boshqa lanes-larni chaqirishi va qiymatlarni qaytarishi mumkin.

ruby
# fastlane/Fastfile — iOS uchun namuna
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

Har bir lane fastlane ios beta yoki fastlane ios release buyrug'i bilan ishga tushiriladi. Fastfile o'zgaruvchilar, shartlar, sikllar va tashqi skriptlarni chaqirishni qo'llab-quvvatlaydi — bu to'liq Ruby faylidir. Dasturchilar kodni private_lane (lokal metodlar) va boshqa Fastfile-lardan import orqali qayta ishlatishlari mumkin.

Fastlane ko'pchilik vazifalar uchun 200 dan ortiq o'rnatilgan actionlarni taqdim etadi. Agar kerakli action bo'lmasa, Ruby-da o'z action-ingizni yozishingiz yoki sh("...") orqali shell buyrug'ini chaqirishingiz mumkin. Action-lar parametrlarni qabul qilishi mumkin — build sozlamalari, yo'llar, kirish tokenlari — va keyingi qadamlarda foydalanish uchun natijani qaytarishi mumkin.

iOS buildlarini avtomatlashtirish

Fastlane iOS uchun uchta asosiy muammoni hal qiladi: sertifikatlar va provisioning profile-larni boshqarish, Xcode orqali IPA yig'ish va App Store Connect hamda TestFlight-da nashr qilish. Ushbu vazifalarning har biri alohida action bilan qoplanadi.

match — sertifikatlarni boshqarish uchun action. Barcha sertifikatlar va provisioning profile-larni shifrlangan Git repozitoriyasida saqlaydi. Har bir dasturchi va CI server bir xil fayllar to'plamidan foydalanadi, bu esa ziddiyatlar va muddati o'tgan sertifikatlar bilan bog'liq muammolarni bartaraf qiladi. Match yangi qurilmalar qo'shilganda profillarni avtomatik yangilaydi.

sigh — Apple Developer Portal orqali provisioning profile yaratadi va yuklab oladi. Muayyan turdagi profilni tezda olish kerak bo'lganda ishlatiladi: development, ad-hoc yoki appstore.

gym — IPA yig'ish. Gym xcodebuild-ni optimal parametrlar bilan o'rab oladi, avtomatik ravishda sxema, konfiguratsiya, export options-ni tanlaydi va imzolangan IPA yaratadi. Misol: gym(scheme: "MyApp", export_method: "app-store").

pilot — TestFlight boshqaruvi. Buildni yuklaydi, testerlar qo'shadi, ko'rib chiqish statusini kuzatadi. deliver — App Store-da to'liq nashr, jumladan metadata, skrinshotlar, narx va versiyalar.

ruby
# iOS ilovasini yig'ish va nashr qilish
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

App Store Connect bilan ishlash uchun kirish tokenlari talab qilinadi. Fastlane ikkita autentifikatsiya usulini qo'llab-quvvatlaydi: App Store Connect API Key (tavsiya etiladi) va ikki faktorli autentifikatsiya bilan Apple ID. API kalitlari CI/CD uchun qulayroq, chunki interaktiv parol kiritishni talab qilmaydi.

ActionMaqsadQo'lda analog
matchSertifikatlar va profillarni boshqarishApple Developer Portal
sighProvisioning profile yaratishXcode + Developer Portal
gymIPA yig'ishxcodebuild + xcrun
pilotTestFlight-ga yuklashXcode Organizer
deliverApp Store-da nashrApp Store Connect Web
scanUI testlarni ishga tushirishxcodebuild test

Android buildlarini avtomatlashtirish

Android-da Fastlane Gradle orqali build, APK va AAB imzolash, Google Play Console va Firebase App Distribution-ga yuklashni avtomatlashtiradi.

gradle — Android uchun asosiy action. Kerakli vazifalar bilan Gradle wrapper-ni chaqiradi: gradle(task: "assembleRelease") yoki AAB uchun gradle(task: "bundleRelease"). Bayroqlar, muhit o'zgaruvchilari va gradle.properties yo'lini uzatish mumkin.

supply — APK yoki AAB-ni Google Play Console-ga yuklaydi. Supply versiyalar, treklar (internal, alpha, beta, production), reliz eslatmalari, narx va tarqatish mamlakatini boshqaradi. Misol: supply(track: "beta", release_status: "completed").

screengrab — Google Play uchun skrinshotlar yaratish. Turli qurilmalar va tillarda ilova ekranlarining skrinshotlarini oladigan instrumentation testlarini ishga tushiradi. Olingan skrinshotlar supply orqali yuklanadi.

ruby
# Android ilovasini yig'ish va nashr qilish
lane :deploy_android do
  gradle(task: "clean bundleRelease")
  supply(
    track: "beta",
    release_status: "completed",
    version_code: 42
  )
end
ActionMaqsadQo'lda analog
gradleGradle orqali build./gradlew assembleRelease
supplyGoogle Play-ga yuklashGoogle Play Console Web
screengrabSkrinshotlar yaratishQo'lda skrinshot + ImageMagick
firebase_app_distributionFirebase orqali tarqatishFirebase Console Upload

CI/CD bilan integratsiya

Fastlane CI/CD pipeline-larida ishlash uchun mo'ljallangan. U interaktiv bo'lmagan rejimni, muhit o'zgaruvchilarini va build artefaktlarini to'g'ri qayta ishlaydi. Quyida — mashhur CI tizimlari bilan integratsiya misollari.

GitHub Actions-da Fastlane Ruby skripti sifatida ishga tushiriladi. Oddiy workflow: Ruby va Fastlane o'rnatish, kalitlarni sozlash (sertifikatlar, API tokenlari secrets orqali), lane-ni ishga tushirish. iOS uchun macOS runner talab qilinadi; Android ubuntu-latest da ishlaydi.

GitLab CI-da Fastlane .gitlab-ci.yml da o'xshash sxema bilan ishlatiladi: bog'liqliklarni o'rnatish, fastlane-ni ishga tushirish, artefaktlarni uzatish. GitLab CI macOS va Linux runner-larini qo'llab-quvvatlaydi.

Bitrise — mobil ilovalar uchun ixtisoslashgan CI/CD — Fastlane uchun o'rnatilgan qo'llab-quvvatlashga ega. Bitrise Workflow Fastlane Step-ni chaqirishi yoki fastlane bilan ixtiyoriy skriptlarni ishga tushirishi mumkin. Bitrise sertifikatlarni o'zining Code Signing menejeri orqali boshqaradi.

ruby
# Testlarni shartli ishga tushirish bilan CI/CD uchun Fastfile
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

CI/CD integratsiyasining muhim jihati — sirlarni saqlash. Fastlane dotenv orqali .env fayli va muhit o'zgaruvchilaridan foydalanadi. iOS uchun muhim o'zgaruvchilar: MATCH_PASSWORD, FASTLANE_APPLE_API_KEY, FASTLANE_APPLE_API_KEY_ID. Android uchun: SUPPLY_JSON_KEY_DATA — Google Play xizmat hisobining mazmuni.

Mashhur Fastlane action-lari

Fastlane 200 dan ortiq o'rnatilgan action-larni o'z ichiga oladi. Quyida — platforma va maqsad ko'rsatilgan holda eng mashhurlarining sharhi.

ActionPlatformaTavsif
gymiOSOptimallashtirilgan xcodebuild parametrlari bilan IPA yig'ish
matchiOSGit orqali sertifikatlar va provisioning profile-larni sinxronlash
pilotiOSBuildni TestFlight-ga yuklash va testerlarni boshqarish
deliveriOSIlovani App Store-da metadata bilan nashr qilish
scaniOSHisobot yaratish bilan unit va UI testlarni ishga tushirish
gradleAndroidGradle vazifalarini ishga tushirish: assemble, bundle, test
supplyAndroidAPK va AAB-ni Google Play Console-ga yuklash
screengrabAndroidGoogle Play uchun avtomatik skrinshotlar
firebase_app_distributionAndroidFirebase orqali buildlarni tarqatish
snapshotiOSApp Store uchun simulyatorlarda avtomatik skrinshotlar
increment_build_numberiOSXcode loyihasida build raqamini avtomatik oshirish
appcenter_uploadIkkalasiBuildni App Center-ga yuklash

Kerakli action-ni qidirish uchun fastlane action [nomi] buyrug'i ishlatiladi, u hujjatlarni, parametrlarni va misollarni ko'rsatadi. To'liq ro'yxat lokal mavjud: fastlane actions.

Fastlane shuningdek plugins — yangi action-lar qo'shadigan hamjamiyat kengaytmalarini qo'llab-quvvatlaydi. Plaginlar fastlane add_plugin [nomi] orqali o'rnatiladi va RubyGems reestrida mavjud. Mashhur plaginlar misollari: fastlane-plugin-versioning (versiyalarni boshqarish), fastlane-plugin-sentry (debug symbol-larni Sentry-ga yuklash), fastlane-plugin-teams (Microsoft Teams-da bildirishnomalar).

Frequently Asked Questions

Fastlane — bu nima va u nima uchun kerak?

Fastlane — mobil ilovalarni build qilish va nashr etishni avtomatlashtirish vositasi. U qo'lda bajariladigan operatsiyalar — yig'ish, imzolash, do'konlarga yuklash — o'rniga bitta buyruqni qo'yish uchun kerak. Fastlane reliz vaqtini soatlardan daqiqalarga qisqartiradi va nashr paytida inson xatolarini bartaraf qiladi.

Fastlane-ni faqat Android yoki faqat iOS uchun ishlatish mumkinmi?

Ha. Fastlane ikkala platformani mustaqil qo'llab-quvvatlaydi. iOS uchun macOS kerak, Android uchun Linux yetarli. Bitta Fastfile-da lanes-larni platformalar bo'yicha ajratish mumkin: platform :ios do ... end va platform :android do ... end.

Fastlane iOS sertifikatlarini qanday boshqaradi?

match action orqali. U shifrlangan sertifikatlar va provisioning profile-larni Git repozitoriyasida saqlaydi. Har bir dasturchi repozitoriyani klonlaydi, match fayllarni MATCH_PASSWORD o'zgaruvchisidagi parol bilan shifrdan chiqaradi va ularni kalitlar to'plamiga o'rnatadi. Bu "mening mashinamda yig'iladi" muammosini hal qiladi.

Fastlane Firebase App Distribution bilan ishlaydimi?

Ha. Fastlane APK va IPA-ni Firebase App Distribution-ga yuklash uchun o'rnatilgan firebase_app_distribution action-iga ega. Shuningdek, testerlar qo'shish uchun firebase_app_distribution_add_testers mavjud. Alternativ — App Center uchun appcenter_upload action.

Fastlane-ni CI serverida qanday o'rnatish mumkin?

Fastlane RubyGems orqali o'rnatiladi: gem install fastlane -NV. iOS uchun Xcode bilan macOS kerak; Android uchun — JDK va Android SDK bilan Linux yoki macOS. GitHub Actions-da Ruby va Fastlane o'rnatish uchun tayyor ruby/setup-ruby action mavjud. Muhit o'zgaruvchilari CI tizimining secrets orqali uzatiladi.

Fastlane Bitrise yoki Jenkins-dan qanday farq qiladi?

Fastlane — build va nashr vazifalarini avtomatlashtirish uchun kutubxona va CLI. Bitrise va Jenkins — to'liq CI/CD platformalari. Fastlane ularning ichida ishlaydi: Jenkins Fastlane-ni pipeline qadami sifatida ishga tushiradi, Bitrise Fastlane-ni maxsus Step orqali chaqiradi. Fastlane CI tizimini almashtirmaydi, balki uni mobil xususiyatlar bilan to'ldiradi.

Summary

  • Fastlane — iOS va Android uchun mobil ilovalarni build qilish, testlash va nashr etishni avtomatlashtirish uchun ochiq manbali vosita
  • Fastfile — action-lar ketma-ketligi bilan stsenariylarni — lanes-ni tavsiflovchi konfiguratsiya Ruby fayli
  • match + gym + pilot — iOS uchun standart pipeline: sertifikatlarni boshqarish, IPA yig'ish, TestFlight-ga yuklash
  • gradle + supply — Android uchun standart pipeline: Gradle orqali build, Google Play Console-ga yuklash
  • CI/CD integratsiyasi — Fastlane GitHub Actions, GitLab CI, Bitrise, Jenkins va CircleCI-ga muhit o'zgaruvchilari orqali o'rnatiladi
  • 200+ action — imzolash, build, test, skrinshotlar, nashr va bildirishnomalar uchun o'rnatilgan buyruqlar
  • Plaginlar — yangi action-lar qo'shadigan hamjamiyat kengaytmalari: versiyalash, Sentry, messenjerlarda bildirishnomalar

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.

Loyihani muhokama qilish

Shuningdek o'qing