Fastlane: bu nədir, buildlərin və nəşrlərin avtomatlaşdırılması

Müəllif: IT Sectr Dərc olunub: 2026-02-13 Oxuma vaxtı: 10 dəq

Fastlane — iOS və Android üçün mobil tətbiqlərin build və nəşrinin avtomatlaşdırılması alətidir. Fastlane kod imzalanması, build, testlərin işə salınması, ekran görüntülərinin yaradılması və App Store Connect ilə Google Play Console-a yükləməni idarə edir. Bu mobil inkişafda CI/CD üçün de-facto standartdır.

Əsas nəticələr

  • Fastlane avtomatlaşdırır mobil buraxılışın bütün pipeline-nı: build, test, imzalama və nəşri bir əmrlə
  • Fastfile — Ruby ilə yazılmış konfiqurasiya faylı, orada lanes — adlandırılmış avtomatlaşdırma ssenariləri təsvir edilir
  • iOS və Android dəstəyi — Fastlane Xcode, Gradle, App Store Connect, Google Play, TestFlight və Firebase ilə işləyir
  • match və sigh — iOS inkişafı üçün sertifikatların və provisioning profile-ların idarə edilməsi
  • CI/CD inteqrasiyası — Fastlane GitHub Actions, GitLab CI, Bitrise, Jenkins və CircleCI-yə inteqrasiya olunur

Fastlane — bu nədir

Fastlane — mobil inkişafın rutin tapşırıqlarını avtomatlaşdıran open-source alətdir: tətbiqin build edilməsi, testlərin işə salınması, ekran görüntülərinin yaradılması, sertifikatların idarə edilməsi, build-lərin TestFlight, App Store və Google Play-ə yüklənməsi. Fastlane Ruby ilə yazılmışdır və gem install fastlane əmri ilə RubyGems vasitəsilə yayılır.

Fastlane 2015-ci ildə iOS aləti kimi meydana çıxdı, lakin tez bir zamanda Android-ə genişləndi. Bu gün bu, onlarla actionslanes adlanan ssenarilərdə birləşdirilə bilən daxili əmrlər ekosistemidir. Hər bir lane konkret tapşırığı yerinə yetirir: məsələn, build_release release versiyasını yığır, deploy_beta isə build-i TestFlight-a yükləyir.

Fastlane Uber, Airbnb, Snapchat, Twitter və Shopify kimi şirkətlər tərəfindən istifadə olunur. 2024-cü il sorğusuna görə, iOS tərtibatçılarının 60%-dən çoxu layihələrində Fastlane tətbiq edir. Alət həm lokal işə salmanı, həm də bulud CI sistemləri ilə inteqrasiyanı dəstəkləyir və bu, onu mobil CI/CD üçün de-fakto standarta çevirir.

ruby
# Fastlane-in quraşdırılması
sudo gem install fastlane -NV

# Layihədə inisializasiya
fastlane init

İnisializasiyadan sonra Fastlane üç faylı olan fastlane/ qovluğu yaradır: Fastfile (ssenarilər), Appfile (tətbiq parametrləri) və Matchfile (sertifikat parametrləri). Bu struktur hər iki platforma — iOS və Android üçün vahid qalır.

Fastfile və lanes

Fastlane-in əsas konfiqurasiya faylı — Fastfile. O, layihənin kökündə fastlane/ qovluğunda yerləşir. Fastfile Ruby ilə yazılır: hər bir lane — actions ardıcıllığı olan adlandırılmış blokdur. Lane parametrlər qəbul edə, digər lanes-ləri çağıra və dəyərlər qaytara bilər.

ruby
# fastlane/Fastfile — iOS üçün nümunə
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

Hər bir lane fastlane ios beta və ya fastlane ios release əmri ilə işə salınır. Fastfile dəyişənləri, şərtləri, dövrləri və xarici skriptləri çağırmağı dəstəkləyir — bu tam hüquqlu Ruby faylıdır. Tərtibatçılar private_lane (lokal metodlar) və digər Fastfile-dan import vasitəsilə kodu təkrar istifadə edə bilərlər.

Fastlane əksər tapşırıqlar üçün 200-dən çox daxili actions təqdim edir. Lazım olan action yoxdursa, Ruby ilə öz action-unuzu yaza və ya sh("...") vasitəsilə shell əmrini çağıra bilərsiniz. Actions parametrlər qəbul edə bilər — build parametrləri, yollar, giriş tokenləri — və növbəti addımlarda istifadə üçün nəticə qaytara bilər.

iOS build-lərinin avtomatlaşdırılması

Fastlane iOS üçün üç əsas problemi həll edir: sertifikatların və provisioning profile-ların idarə edilməsi, Xcode vasitəsilə IPA-nın yığılması və App Store Connect ilə TestFlight-da nəşr. Bu tapşırıqların hər biri ayrıca action ilə əhatə olunur.

match — sertifikatların idarə edilməsi üçün action. Bütün sertifikatları və provisioning profile-ları şifrələnmiş Git repozitoriyasında saxlayır. Hər bir tərtibatçı və CI server eyni fayl dəstindən istifadə edir ki, bu da konfliktləri və müddəti bitmiş sertifikatlarla bağlı problemləri aradan qaldırır. Match yeni cihazlar əlavə edildikdə profilləri avtomatik yeniləyir.

sigh — Apple Developer Portal vasitəsilə provisioning profile yaradır və endirir. Müəyyən tip üçün profili tez əldə etmək lazım olduqda istifadə olunur: development, ad-hoc və ya appstore.

gym — IPA-nın yığılması. Gym xcodebuild-i optimal parametrlərlə sarır, avtomatik olaraq sxemi, konfiqurasiyanı, export options seçir və imzalanmış IPA yaradır. Nümunə: gym(scheme: "MyApp", export_method: "app-store").

pilot — TestFlight-ın idarə edilməsi. Build yükləyir, testerlər əlavə edir, rəy statusunu izləyir. deliver — App Store-da tam nəşr, o cümlədən metadata, ekran görüntüləri, qiymət və versiyalar.

ruby
# iOS tətbiqinin yığılması və nəşri
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 ilə işləmək üçün giriş tokenləri tələb olunur. Fastlane iki autentifikasiya üsulunu dəstəkləyir: App Store Connect API Key (tövsiyə olunan) və iki faktorlu autentifikasiya ilə Apple ID. API açarları CI/CD üçün daha əlverişlidir, çünki interaktiv parol daxil etmə tələb etmir.

ActionMəqsədƏl analoqu
matchSertifikatların və profillərin idarə edilməsiApple Developer Portal
sighProvisioning profile yaradılmasıXcode + Developer Portal
gymIPA yığılmasıxcodebuild + xcrun
pilotTestFlight-a yükləməXcode Organizer
deliverApp Store-da nəşrApp Store Connect Web
scanUI testlərin işə salınmasıxcodebuild test

Android build-lərinin avtomatlaşdırılması

Android-də Fastlane Gradle vasitəsilə build, APK və AAB imzalanması, Google Play Console və Firebase App Distribution-a yükləməni avtomatlaşdırır.

gradle — Android üçün əsas action. Lazım olan tapşırıqlarla Gradle wrapper-i çağırır: gradle(task: "assembleRelease") və ya AAB üçün gradle(task: "bundleRelease"). Flaqlar, ətraf mühit dəyişənləri və gradle.properties yolunu ötürmək olar.

supply — APK və ya AAB-nı Google Play Console-a yükləyir. Supply versiyaları, trekləri (internal, alpha, beta, production), buraxılış qeydlərini, qiyməti və yayılma ölkəsini idarə edir. Nümunə: supply(track: "beta", release_status: "completed").

screengrab — Google Play üçün ekran görüntülərinin yaradılması. Müxtəlif cihazlarda və dillərdə tətbiq ekranlarının görüntülərini çəkən instrumentation testlərini işə salır. Alınan ekran görüntüləri supply vasitəsilə yüklənir.

ruby
# Android tətbiqinin yığılması və nəşri
lane :deploy_android do
  gradle(task: "clean bundleRelease")
  supply(
    track: "beta",
    release_status: "completed",
    version_code: 42
  )
end
ActionMəqsədƏl analoqu
gradleGradle vasitəsilə build./gradlew assembleRelease
supplyGoogle Play-ə yükləməGoogle Play Console Web
screengrabEkran görüntülərinin yaradılmasıƏl ekran görüntüsü + ImageMagick
firebase_app_distributionFirebase vasitəsilə paylamaFirebase Console Upload

CI/CD ilə inteqrasiya

Fastlane CI/CD pipeline-larında işləmək üçün nəzərdə tutulmuşdur. O, qeyri-interaktiv rejimi, ətraf mühit dəyişənlərini və build artefaktlarını düzgün emal edir. Aşağıda — məşhur CI sistemləri ilə inteqrasiya nümunələri.

GitHub Actions-da Fastlane Ruby skripti kimi işə salınır. Tipik workflow: Ruby və Fastlane-in quraşdırılması, açarların konfiqurasiyası (sertifikatlar, API tokenləri secrets vasitəsilə), lane-in işə salınması. iOS üçün macOS runner tələb olunur; Android ubuntu-latest-də işləyir.

GitLab CI-da Fastlane .gitlab-ci.yml-də oxşar sxemlə istifadə olunur: asılılıqların quraşdırılması, fastlane-in işə salınması, artefaktların ötürülməsi. GitLab CI macOS və Linux runner-larını dəstəkləyir.

Bitrise — mobil tətbiqlər üçün ixtisaslaşmış CI/CD — Fastlane üçün daxili dəstəyə malikdir. Bitrise Workflow Fastlane Step-i çağıra və ya fastlane ilə ixtiyari skriptləri işə sala bilər. Bitrise sertifikatları öz Code Signing meneceri vasitəsilə idarə edir.

ruby
# Testlərin şərti işə salınması ilə CI/CD üçün 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 inteqrasiyasının vacib aspekti — sirlərin saxlanmasıdır. Fastlane dotenv vasitəsilə .env faylından və ətraf mühit dəyişənlərindən istifadə edir. iOS üçün kritik dəyişənlər: MATCH_PASSWORD, FASTLANE_APPLE_API_KEY, FASTLANE_APPLE_API_KEY_ID. Android üçün: SUPPLY_JSON_KEY_DATA — Google Play servis hesabının məzmunu.

Populyar Fastlane action-ları

Fastlane 200-dən çox daxili action ehtiva edir. Aşağıda — platforma və məqsəd göstərilməklə ən populyarların icmalı.

ActionPlatformaTəsvir
gymiOSOptimallaşdırılmış xcodebuild parametrləri ilə IPA yığılması
matchiOSGit vasitəsilə sertifikatların və provisioning profile-ların sinxronizasiyası
pilotiOSBuild-in TestFlight-a yüklənməsi və testerlərin idarə edilməsi
deliveriOSTətbiqin App Store-da metadata ilə nəşri
scaniOSHesabat generasiyası ilə unit və UI testlərinin işə salınması
gradleAndroidGradle tapşırıqlarının işə salınması: assemble, bundle, test
supplyAndroidAPK və AAB-nin Google Play Console-a yüklənməsi
screengrabAndroidGoogle Play üçün avtomatik ekran görüntüləri
firebase_app_distributionAndroidFirebase vasitəsilə build-lərin paylanması
snapshotiOSApp Store üçün simulyatorlarda avtomatik ekran görüntüləri
increment_build_numberiOSXcode layihəsində build nömrəsinin avtomatik artırılması
appcenter_uploadHər ikisiBuild-in App Center-ə yüklənməsi

Lazım olan action-u tapmaq üçün fastlane action [ad] əmri istifadə olunur, o sənədləşməni, parametrləri və nümunələri göstərir. Tam siyahı lokal olaraq mövcuddur: fastlane actions.

Fastlane həmçinin plugins — yeni actions əlavə edən icma genişlənmələrini dəstəkləyir. Plaginlər fastlane add_plugin [ad] vasitəsilə quraşdırılır və RubyGems reyestrində mövcuddur. Məşhur plagin nümunələri: fastlane-plugin-versioning (versiyaların idarə edilməsi), fastlane-plugin-sentry (debug symbols-ın Sentry-ə yüklənməsi), fastlane-plugin-teams (Microsoft Teams-də bildirişlər).

Frequently Asked Questions

Fastlane — bu nədir və nə üçün lazımdır?

Fastlane — mobil tətbiqlərin build və nəşrinin avtomatlaşdırılması alətidir. Əl əməliyyatlarını — yığma, imzalama, mağazalara yükləmə — bir əmrlə əvəz etmək üçün lazımdır. Fastlane buraxılış vaxtını saatlardan dəqiqələrə endirir və nəşr zamanı insan səhvlərini aradan qaldırır.

Fastlane-i yalnız Android və ya yalnız iOS üçün istifadə etmək olar?

Bəli. Fastlane hər iki platformanı müstəqil dəstəkləyir. iOS üçün macOS tələb olunur, Android üçün Linux kifayətdir. Bir Fastfile-da lanes-ləri platformalara görə bölmək olar: platform :ios do ... endplatform :android do ... end.

Fastlane iOS sertifikatlarını necə idarə edir?

match action vasitəsilə. O, şifrələnmiş sertifikatları və provisioning profile-ları Git repozitoriyasında saxlayır. Hər bir tərtibatçı repozitoriyanı klonlayır, match faylları MATCH_PASSWORD dəyişənindən parolla şifrədən çıxarır və onları açar topasına quraşdırır. Bu "mənim maşınımda yığılır" problemini həll edir.

Fastlane Firebase App Distribution ilə işləyir?

Bəli. Fastlane APK və IPA-nı Firebase App Distribution-a yükləmək üçün daxili firebase_app_distribution action-na malikdir. Həmçinin testerlər əlavə etmək üçün firebase_app_distribution_add_testers mövcuddur. Alternativ — App Center üçün appcenter_upload action.

Fastlane-i CI serverində necə quraşdırmaq olar?

Fastlane RubyGems vasitəsilə quraşdırılır: gem install fastlane -NV. iOS üçün Xcode ilə macOS tələb olunur; Android üçün — JDK və Android SDK ilə Linux və ya macOS. GitHub Actions-da Ruby və Fastlane quraşdırmaq üçün hazır ruby/setup-ruby action var. Ətraf mühit dəyişənləri CI sisteminin secrets vasitəsilə ötürülür.

Fastlane Bitrise və ya Jenkins-dən nə ilə fərqlənir?

Fastlane — build və nəşr tapşırıqlarının avtomatlaşdırılması üçün kitabxana və CLI-dir. BitriseJenkins — tam CI/CD platformalarıdır. Fastlane onların daxilində işləyir: Jenkins Fastlane-i pipeline addımı kimi işə salır, Bitrise Fastlane-i xüsusi Step vasitəsilə çağırır. Fastlane CI sistemini əvəz etmir, onu mobil spesifikliklə tamamlayır.

Summary

  • Fastlane — iOS və Android üçün mobil tətbiqlərin build, test və nəşrinin avtomatlaşdırılması üçün open-source alət
  • Fastfile — actions ardıcıllığı ilə ssenariləri — lanes təsvir edən konfiqurasiya Ruby faylı
  • match + gym + pilot — iOS üçün standart pipeline: sertifikatların idarə edilməsi, IPA yığılması, TestFlight-a yükləmə
  • gradle + supply — Android üçün standart pipeline: Gradle vasitəsilə build, Google Play Console-a yükləmə
  • CI/CD inteqrasiyası — Fastlane GitHub Actions, GitLab CI, Bitrise, Jenkins və CircleCI-yə ətraf mühit dəyişənləri vasitəsilə inteqrasiya olunur
  • 200+ actions — imzalama, build, test, ekran görüntüləri, nəşr və bildirişlər üçün daxili əmrlər
  • Plaginlər — yeni actions əlavə edən icma genişlənmələri: versiyalama, Sentry, messencerlərdə bildirişlər

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun