Mobil inkişafda Ruby: Fastlane, CI/CD və avtomatlaşdırma

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

Ruby — dinamik interpretasiya olunan dil, zərif sintaksisə malikdir, Ruby on Rails çərçivəsi ilə tanınır. Mobil inkişafda Ruby ilk növbədə Fastlane vasitəsilə istifadə olunur — iOS və Android tətbiqlərinin bina, test və yerləşdirilməsinin avtomatlaşdırılması üçün standart alət. Fastlane rəsmi sənədlərinə görə, alət dünyada 100 000-dən çox layihədə istifadə olunur.

Əsas məqamlar

  • Ruby — bina avtomatlaşdırması üçün Fastlane vasitəsilə mobil inkişafda istifadə olunan dinamik dil
  • Fastlane — iOS və Android inkişafında CI/CD üçün de-fakto standart, Ruby ilə yazılıb
  • Fastfile — bina prosesini təsvir edən Ruby bənzəri DSL-də konfiqurasiya faylı
  • Match və Deliver — sertifikatların idarə edilməsi və App Store-da nəşr üçün Fastlane actions
  • Ruby Gems — Fastlane-i plaginlərlə genişləndirməyə imkan verən paket meneceri

Ruby nədir?

Ruby — 1995-ci ildə Yukihiro Matsumoto tərəfindən yaradılmış açıq mənbəli dinamik interpretasiya olunan dil. Ruby-nin əsas prinsipi — optimal sadəlik (principle of least surprise). Dil bloklar (closures), təmiz obyekt yönümlü yanaşma (hər şey obyektdir, o cümlədən rəqəmlər) və güclü metaproqramlaşdırma sistemi ilə tanınır.

Ruby 3.1 versiyasından JIT kompilasiyası ilə YARV (Yet Another Ruby VM) interpretatorunda işləyir. Cari versiya Ruby 3.4 (2025) dekoratorları, təkmilləşdirilmiş Prism parserini və RBS vasitəsilə eksperimental tip dəstəyini əhatə edir. RubyGems — paket meneceri — 200 000-dən çox gem ehtiva edir.

Ruby on Rails — Ruby-də ən məşhur veb çərçivədir, lakin mobil inkişafda Ruby fərqli şəkildə tətbiq olunur. Əsas niş — Fastlane: mobil tətbiqin həyat dövrünün bütün mərhələlərini avtomatlaşdırmaq üçün Ruby skriptləri və gemlər ekosistemi: sertifikatların imzalanmasından mağazalarda nəşrə qədər.

Fastlane üçün Ruby sintaksisinin əsasları

Fastlane ilə iş üçün Ruby-nin əsas anlayışı kifayətdir: metodlar, do-end blokları, simvollar (:symbol) və hash sintaksisi { key: value }. Python-dan fərqli olaraq, Ruby blokları bağlamaq üçün abzas deyil, end istifadə edir. Metodlar mötərizəsiz çağrıla bilər — bu Fastlane DSL-də fəal şəkildə istifadə olunur.

ruby
# Fastlane-də istifadə olunan əsas Ruby sintaksisi
def download_assets(version, platform: "ios")
  paths = {
    ios: "ios/Assets.car",
    android: "android/app/src/main/assets"
  }
  url = "https://cdn.example.com/assets/#{version}/#{paths[platform.to_sym]}"
  puts "Downloading from: #{url}"

  unless File.exist?("temp/assets")
    Dir.mkdir("temp/assets")
  end
  result = system("curl -o temp/assets.zip #{url}")
  raise "Download failed" unless result
end

download_assets("1.2.3", platform: "android")

Nümunədə download_assets metodu version arqumentini və platform isteğe bağlı adlandırılmış parametrini qəbul edir (standart olaraq ios). #{...} vasitəsilə sətir interpolasiyası dəyərləri birbaşa sətirlərə yerləşdirir. unless if-in əksidir, şərt yalan olduqda kodu icra edir.

Fastlane: Ruby-də mobil binaların avtomatlaşdırılması

Fastlane — Ruby ilə yazılmış açıq mənbəli alət. gem install fastlane vasitəsilə qurulduqda, mobil tərtibatçının ən rutin vəzifələrini avtomatlaşdırmaq üçün əmrlər dəsti təqdim edir: ekran görüntülərinin yaradılması, kodun imzalanması, TestFlight və Google Play Console-da nəşr.

Fastlane alətlərdən (tools) ibarətdir: sigh (sertifikatların idarə edilməsi), match (komandada sertifikatların sinxronizasiyası), gym (iOS bina), gradle (Android bina), deliver (iOS nəşr), supply (Android nəşr), snapshot (ekran görüntüləri), scan (test). Bütün alətlər vahid Fastfile-dan əlçatandır.

Böyük layihələrdə Fastlane bir boru kəmərində 50+ action idarə edir: versiya artımı, CDN-dən aktivlərin yüklənməsi, bina, imzalama, App Store Connect-ə yükləmə, Slack-ə bildiriş göndərmə. Bütün boru kəməri bir əmrlə yerinə yetirilir: fastlane release.

Fastfile: bina boru kəmərinin konfiqurasiyası

Fastfile — hərəkətlərin ardıcıllığını (lane) təsvir edən Ruby bənzəri DSL-də fayl. Hər lane ayrı bir tapşırıqdır: beta (test üçün bina), release (buraxılış), screenshots (ekran görüntülərinin yaradılması). Lane-lər ötürülən parametrlərlə digər lane-ləri çağıra bilər.

ruby
# Fastfile — iOS tətbiqi bina boru kəmərinin konfiqurasiyası
fastlane_version "2.220.0"

default_platform :ios

platform :ios do
  desc "TestFlight buildinin bina və yerləşdirilməsi"
  lane :beta do |options|
    increment_build_number(
      build_number: options[:build]
    )
    match(type: :appstore)
    gym(
      scheme: "MyApp",
      export_method: "app-store",
      configuration: "Release"
    )
    upload_to_testflight(
      app_identifier: "com.example.myapp"
    )
    slack(
      message: "Build #{options[:build]} TestFlight-a yükləndi"
    )
  end
end

Beta lane ardıcıl olaraq yerinə yetirir: bina nömrəsinin artımı (increment_build_number), sertifikatların sinxronizasiyası (match), arxivin kompilasiyası (gym), TestFlight-a yükləmə (upload_to_testflight) və Slack-ə bildiriş göndərmə. :build parametri lane-ə adlandırılmış arqument kimi ötürülür.

Fastfile-da Android konfiqurasiyası

Fastlane bir Fastfile-da hər iki platformanı dəstəkləyir. Android üçün platform :android daxilində gradle, supply və google_play_track_version_codes actions ilə lane istifadə olunur.

ruby
platform :android do
  desc "APK bina və Google Play Internal Testing-də nəşr"
  lane :beta do
    gradle(
      task: "assemble",
      build_type: "Release",
      flavor: "Production"
    )
    supply(
      track: "internal",
      apk_paths: ["app/build/outputs/apk/release/app-release.apk"]
    )
  end
end

iOS və Android üçün əsas Fastlane actions

Fastlane 200-dən çox daxili action ehtiva edir. Aşağıda — mobil inkişaf üçün ən vacibləri, kateqoriyalara bölünmüş şəkildə.

ActionPlatformaTəyinat
matchiOSGit vasitəsilə sertifikatların və provisioning profillərin sinxronizasiyası
gymiOS.app və .ipa arxivinin kompilasiyası
scaniOSSimulyatorda UI testlərinin işə salınması
snapshotiOSMüxtəlif cihazlarda avtomatik ekran görüntülərinin yaradılması
deliveriOSApp Store Connect-ə build, ekran görüntüləri və metadata yükləmə
pilotiOSTestFlight idarəsi: build yükləmə, testçilər əlavə etmə
gradleAndroidGradle tapşırıqlarının işə salınması: assemble, test, bundle
supplyAndroidGoogle Play Console-a APK/AAB və metadata yükləmə
screengrabAndroidGoogle Play üçün avtomatik ekran görüntüləri
firebase_app_distributionHər ikisiFirebase App Distribution-a build yükləmə

Match: sertifikatların təhlükəsiz idarə edilməsi

match — tərtibatçılar arasında iOS sertifikatlarının və provisioning profillərin sinxronizasiyası üçün Fastlane gemi. Bütün sirlər şifrələnmiş Git deposunda və ya S3-də saxlanılır. Match sertifikatlar çatışmadıqda onları avtomatik yaradır və müddəti bitdikdə yeniləyir.

ruby
# Yeni layihə üçün match-in işə salınması
$ fastlane match init

# App Store sertifikatlarının yaradılması və sinxronizasiyası
$ fastlane match appstore

# Komanda üçün Development sertifikatlarının yaradılması
$ fastlane match development

# Müddəti bitdikdə bütün sertifikatların yenilənməsi
$ fastlane match --force

Match yalnız tərtibatçıların bildiyi parol ifadəsi ilə şəxsi açarları saxlayır. Hər tərtibatçı sertifikat deposunu klonlayır və cari profilləri quraşdırmaq üçün match-i işə salır. Apple sertifikatlarının müddəti 1 ildir, match onları avtomatik yeniləyir.

Fastlane-in CI/CD sistemləri ilə inteqrasiyası

Fastlane istənilən CI/CD platformaları ilə inteqrasiya olunur: GitHub Actions, GitLab CI, CircleCI, Bitrise, Jenkins və Xcode Cloud (xcode-build vasitəsilə). Fastlane CI-də fastlane <lane_name> vasitəsilə işə salınır və hər hansı addım uğursuz olduqda xəta kodu qaytarır.

GitHub Actions üçün konfiqurasiya Ruby, fastlane quraşdırılması və bundle exec fastlane vasitəsilə lane işə salınmasını əhatə edir. iOS bina üçün macOS runner tələb olunur. Android üçün ubuntu-latest istifadə oluna bilər, bu daha ucuzdur.

yaml
# .github/workflows/deploy.yml — Fastlane ilə CI/CD
name: Deploy Mobile App
on:
  push:
    branches: [main]

jobs:
  ios-deploy:
    runs-on: macos-14
    steps:
      - uses: actions/checkout@v4
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: "3.3"
      - run: bundle install
      - run: bundle exec fastlane beta
      - env:
          MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}

Workflow main-ə push zamanı işə düşür. macOS runner Fastfile-dan bundle exec fastlane beta icra edir. MATCH_PASSWORD GitHub Secrets vasitəsilə sertifikatların şifrəsini açmaq üçün ötürülür. Lane başa çatdıqdan sonra Slack action bildiriş göndərir.

Ruby Gems və Fastlane plaginləri

RubyGems — Ruby üçün paket meneceri. Fastlane plaginlər vasitəsilə genişləndirilir — yeni actions əlavə edən gemlər. fastlane-plugin-versioning plagin versiyaları idarə edir, fastlane-plugin-firebase_app_distribution build-ları Firebase-ə yükləyir. GitHub-da 500-dən çox Fastlane plagin var.

Layihənin kökündə Gemfile binaların təkrarlanması üçün bütün asılılıqların versiyalarını müəyyən edir. bundle install Gemfile.lock-a uyğun gemləri quraşdırır. Mobil inkişaf üçün əsas gemlər: fastlane, cocoapods (iOS asılılıqları), xcodeproj (.xcodeproj ilə iş).

ruby
# Mobil layihə üçün Gemfile
source "https://rubygems.org"

gem "fastlane", "~> 2.220"

plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path)

Fastlane alternativlərə qarşı: yanaşmaların müqayisəsi

Fastlane — yeganə avtomatlaşdırma aləti deyil. Onu mobil komanda üçün vacib meyarlara görə əsas alternativlərlə müqayisə edək.

MeyarFastlane (Ruby)Bitrise (veb)Xcode Cloud (Apple)GitHub Actions (YAML)
ÇeviklikMaksimal (kod)Orta (steps)Aşağı (məhdud)Yüksək
iOSTam dəstəkTamTam (daxili)Self-hosted macOS vasitəsilə
AndroidTam dəstəkTamYoxTam
Sertifikatlar (match)DaxiliCode Signing vasitəsiləAvtomatikFastlane vasitəsilə
Yerli işə salmaBəliXeyr (yalnız CI)Xeyract vasitəsilə
Plaginlər500+200+ inteqrasiyaYox20 000+ action

Fastlane mürəkkəb boru kəmərləri üçün ən çevik alət olaraq qalır. Bitrise Ruby tərtibatçısı olmayan komandalar üçün əlverişlidir. Xcode Cloud — sadə iOS layihələri üçün. GitHub Actions — komanda artıq GitHub istifadə edirsə.

Tez-tez verilən suallar

Kotlin və Swift varkən mobil inkişafda Ruby nə üçün lazımdır?

Ruby mobil tətbiqlərin yazılması üçün deyil, Fastlane vasitəsilə bina, test və yerləşdirmə proseslərinin avtomatlaşdırılması üçün istifadə olunur. Fastlane iOS və Android inkişafında CI/CD üçün de-fakto standartdır.

Fastlane yalnız macOS-da işləyir?

Fastlane macOS, Linux və Windows-da işləyir, lakin iOS bina üçün Xcode və macOS tələb olunur. Android binalar istənilən platformada yerinə yetirilir. Yerli olaraq tərtibatçılar macOS, CI-da iOS üçün macOS və Android üçün Linux istifadə edirlər.

Fastlane ilə iş üçün Ruby öyrənmək lazımdır?

Ruby əsas anlayışı Fastlane ilə iş üçün kifayətdir. Fastlane Fastfile-da Ruby bənzəri DSL istifadə edir. Tipik tapşırıqlar üçün gemlər, do-end blokları və əsas sintaksis bilikləri kifayətdir. Ruby-nin dərindən bilinməsi tələb olunmur.

Fastlane-in alternativləri hansılardır?

Alternativlər: Android üçün Gradle (daxili), Xcode Cloud (Apple), Bitrise (veb interfeys), GitHub Actions (YAML). Fastlane zəngin action və plagin ekosistemi sayəsində ən çevik alət olaraq qalır.

Fastlane böyük komandalar üçün uyğundur?

Bəli, Fastlane böyük şirkətlər tərəfindən istifadə olunur. Bütün action və konfiqurasiya faylları depoda versiyalanır, match isə depoda və ya S3-də sertifikatların təhlükəsiz saxlanmasını təmin edir.

Nəticə

  • Ruby — mobil inkişafda Fastlane ekosistemi vasitəsilə bina avtomatlaşdırması üçün istifadə olunan dinamik dil
  • Fastlane — iOS və Android üçün CI/CD standartı: 200+ action, 500+ plagin, 100 000+ layihə
  • Fastfile — Ruby bənzəri DSL: beta, release, screenshots müxtəlif bina ssenariləri üçün
  • Match tərtibatçılar arasında iOS sertifikatlarının və provisioning profillərin sinxronizasiyası problemini həll edir
  • Deliver və Supply — App Store və Google Play-də metadata və ekran görüntüləri ilə nəşr üçün actions
  • CI/CD inteqrasiyası — Fastlane GitHub Actions, GitLab CI, CircleCI və Bitrise-də işləyir
  • Çeviklik — Fastlane Ruby-də proqramlaşdırıla bilən boru kəməri sayəsində Bitrise və Xcode Cloud-dan üstündü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