Mobil ishlanmada Ruby: Fastlane, CI/CD va avtomatlashtirish

Muallif: IT Sectr Nashr etilgan: 2026-02-11 O'qish vaqti: 8 daq

Ruby — dinamik interpretatsiya qilinadigan til, nafis sintaksisga ega, Ruby on Rails freymvorki bilan tanilgan. Mobil ishlanmada Ruby birinchi navbatda Fastlane orqali qo‘llaniladi — iOS va Android ilovalarini qurish, testlash va joylashtirishni avtomatlashtirish uchun standart vosita. Fastlane rasmiy hujjatlariga ko‘ra, vosita dunyo bo‘ylab 100 000 dan ortiq loyihada qo‘llaniladi.

Asosiy ma’lumotlar

  • Ruby — mobil ishlanmada Fastlane orqali qurilishni avtomatlashtirish uchun ishlatiladigan dinamik til
  • Fastlane — iOS va Android ishlanmasida CI/CD uchun de-fakto standart, Ruby da yozilgan
  • Fastfile — Ruby-ga o‘xshash DSL da qurilish jarayonini tavsiflovchi konfiguratsiya fayli
  • Match va Deliver — sertifikatlarni boshqarish va App Store da nashr qilish uchun Fastlane actionlari
  • Ruby Gems — Fastlane-ni plaginlar bilan kengaytirish imkonini beruvchi paket menejeri

Ruby nima?

Ruby — 1995 yilda Yukihiro Matsumoto tomonidan yaratilgan ochiq kodli dinamik interpretatsiya qilinadigan til. Ruby ning asosiy printsipi — optimal soddalik (principle of least surprise). Til bloklar (closures), sof ob’ektga yo‘naltirilgan yondashuv (hamma narsa ob’ekt, shu jumladan raqamlar) va kuchli metaprogrammalashtirish tizimi bilan tanilgan.

Ruby 3.1 versiyasidan JIT kompilatsiyasi bilan YARV (Yet Another Ruby VM) interpretatorida ishlaydi. Joriy versiya Ruby 3.4 (2025) dekoratorlarni, yaxshilangan Prism parserini va RBS orqali eksperimental tip qo‘llab-quvvatlashni o‘z ichiga oladi. RubyGems — paket menejeri — 200 000 dan ortiq gemni o‘z ichiga oladi.

Ruby on Rails — Ruby dagi eng mashhur veb freymvork, ammo mobil ishlanmada Ruby boshqacha qo‘llaniladi. Asosiy joy — Fastlane: mobil ilova hayotiy siklining barcha bosqichlarini avtomatlashtirish uchun Ruby skriptlari va gemlari ekotizimi: sertifikatlarni imzolashdan do‘konlarda nashr qilishgacha.

Fastlane uchun Ruby sintaksisining asoslari

Fastlane bilan ishlash uchun Ruby ni asosiy tushunish yetarli: metodlar, do-end bloklari, simvollar (:symbol) va hash sintaksisi { key: value }. Python dan farqli o‘laroq, Ruby bloklarni yopish uchun chekinish emas, balki end ishlatadi. Metodlar qavssiz chaqirilishi mumkin — bu Fastlane DSL da faol qo‘llaniladi.

ruby
# Fastlane da ishlatiladigan asosiy 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")

Misolda download_assets metodi version argumentini va platform ixtiyoriy nomlangan parametrini qabul qiladi (standart ios). #{} orqali satr interpolyatsiyasi qiymatlarni to‘g‘ridan-to‘g‘ri satrlarga joylashtiradi. unless — if ning aksi, shart yolg‘on bo‘lsa kodni bajaradi.

Fastlane: Ruby da mobil qurilishlarni avtomatlashtirish

Fastlane — Ruby da yozilgan ochiq kodli vosita. gem install fastlane orqali o‘rnatilganda, mobil dasturchining eng odatiy vazifalarini avtomatlashtirish uchun buyruqlar to‘plamini taqdim etadi: ekran tasvirlarini yaratish, kodni imzolash, TestFlight va Google Play Console da nashr qilish.

Fastlane vositalardan (tools) iborat: sigh (sertifikatlarni boshqarish), match (jamoada sertifikatlarni sinxronlashtirish), gym (iOS qurish), gradle (Android qurish), deliver (iOS nashr), supply (Android nashr), snapshot (ekran tasvirlari), scan (testlash). Barcha vositalar yagona Fastfile dan foydalanish mumkin.

Katta loyihalarda Fastlane bir quvurda 50+ actionni boshqaradi: versiyani oshirish, CDN dan aktivlarni yuklash, qurish, imzolash, App Store Connect ga yuklash, Slack ga bildirishnoma yuborish. Butun quvur bitta buyruq bilan bajariladi: fastlane release.

Fastfile: qurilish quvurining konfiguratsiyasi

Fastfile — harakatlar ketma-ketligini (lane) tavsiflovchi Ruby-ga o‘xshash DSL dagi fayl. Har bir lane alohida vazifa: beta (test uchun qurish), release (chop etish), screenshots (ekran tasvirlarini yaratish). Lanelar uzatiladigan parametrlar bilan boshqa lanelarni chaqirishi mumkin.

ruby
# Fastfile — iOS ilovasi qurilish quvurining konfiguratsiyasi
fastlane_version "2.220.0"

default_platform :ios

platform :ios do
  desc "TestFlight buildini qurish va joylashtirish"
  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 ga yuklandi"
    )
  end
end

Beta lane ketma-ket bajaradi: qurish raqamini oshirish (increment_build_number), sertifikatlarni sinxronlashtirish (match), arxivni kompilatsiya qilish (gym), TestFlight ga yuklash (upload_to_testflight) va Slack ga bildirishnoma yuborish. :build parametri lane ga nomlangan argument sifatida uzatiladi.

Fastfile da Android konfiguratsiyasi

Fastlane bir Fastfile da ikkala platformani qo‘llab-quvvatlaydi. Android uchun platform :android ichida gradle, supply va google_play_track_version_codes actionlari bilan lane ishlatiladi.

ruby
platform :android do
  desc "APK qurish va Google Play Internal Testing da nashr qilish"
  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 va Android uchun asosiy Fastlane actionlari

Fastlane 200 dan ortiq o‘rnatilgan actionni o‘z ichiga oladi. Quyida — mobil ishlanma uchun eng muhimlari, kategoriyalarga bo‘lingan holda.

ActionPlatformaMaqsad
matchiOSGit orqali sertifikatlar va provisioning profillarini sinxronlashtirish
gymiOS.app va .ipa arxivini kompilatsiya qilish
scaniOSSimulyatorda UI testlarini ishga tushirish
snapshotiOSTurli qurilmalarda avtomatik ekran tasvirlarini yaratish
deliveriOSApp Store Connect ga build, ekran tasvirlari va metama’lumotlarni yuklash
pilotiOSTestFlight ni boshqarish: build yuklash, testchilarni qo‘shish
gradleAndroidGradle vazifalarini ishga tushirish: assemble, test, bundle
supplyAndroidGoogle Play Console ga APK/AAB va metama’lumotlarni yuklash
screengrabAndroidGoogle Play uchun avtomatik ekran tasvirlari
firebase_app_distributionIkkalasiFirebase App Distribution ga build yuklash

Match: sertifikatlarni xavfsiz boshqarish

match — dasturchilar o‘rtasida iOS sertifikatlari va provisioning profillarini sinxronlashtirish uchun Fastlane gemi. Barcha sirlar shifrlangan Git repozitoriy yoki S3 da saqlanadi. Match sertifikatlar yo‘q bo‘lsa ularni avtomatik yaratadi va muddati tugaganda yangilaydi.

ruby
# Yangi loyiha uchun match ni ishga tushirish
$ fastlane match init

# App Store sertifikatlarini yaratish va sinxronlashtirish
$ fastlane match appstore

# Jamoa uchun Development sertifikatlarini yaratish
$ fastlane match development

# Muddati tugaganda barcha sertifikatlarni yangilash
$ fastlane match --force

Match faqat dasturchilar biladigan parol iborasi bilan shaxsiy kalitlarni saqlaydi. Har bir dasturchi sertifikat repozitoriyini klonlaydi va joriy profillarni o‘rnatish uchun match ni ishga tushiradi. Apple sertifikatlari 1 yil amal qiladi, match ularni avtomatik yangilaydi.

Fastlane-ni CI/CD tizimlari bilan integratsiyasi

Fastlane har qanday CI/CD platformasi bilan integratsiyalanadi: GitHub Actions, GitLab CI, CircleCI, Bitrise, Jenkins va Xcode Cloud (xcode-build orqali). Fastlane CI da fastlane <lane_nomi> orqali ishga tushiriladi va har qanday qadam muvaffaqiyatsiz bo‘lsa xato kodi qaytaradi.

GitHub Actions uchun konfiguratsiya Ruby, fastlane o‘rnatish va bundle exec fastlane orqali lane ni ishga tushirishni o‘z ichiga oladi. iOS qurish uchun macOS runner talab qilinadi. Android uchun ubuntu-latest ishlatilishi mumkin, bu arzonroq.

yaml
# .github/workflows/deploy.yml — Fastlane bilan 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 ga push qilinganda ishga tushadi. macOS runner Fastfile dan bundle exec fastlane beta ni bajaradi. MATCH_PASSWORD GitHub Secrets orqali sertifikatlarni shifrdan chiqarish uchun uzatiladi. Lane tugagach, Slack action bildirishnoma yuboradi.

Ruby Gems va Fastlane plaginlari

RubyGems — Ruby uchun paket menejeri. Fastlane plaginlar orqali kengaytiriladi — yangi actionlar qo‘shadigan gemlar. fastlane-plugin-versioning plagini versiyalarni boshqaradi, fastlane-plugin-firebase_app_distribution buildlarni Firebase ga yuklaydi. GitHub da 500 dan ortiq Fastlane plagini mavjud.

Loyiha ildizidagi Gemfile qurilishlarning takrorlanuvchanligi uchun barcha bog‘liqliklar versiyalarini belgilaydi. bundle install Gemfile.lock ga muvofiq gemlarni o‘rnatadi. Mobil ishlanma uchun asosiy gemlar: fastlane, cocoapods (iOS bog‘liqliklari), xcodeproj (.xcodeproj bilan ishlash).

ruby
# Mobil loyiha uchun 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 alternativalarga qarshi: yondashuvlarni taqqoslash

Fastlane — yagona avtomatlashtirish vositasi emas. Keling, uni mobil jamoa uchun muhim mezonlar bo‘yicha asosiy alternativalar bilan taqqoslaylik.

MezonFastlane (Ruby)Bitrise (veb)Xcode Cloud (Apple)GitHub Actions (YAML)
MoslashuvchanlikMaksimal (kod)O‘rta (steps)Past (cheklangan)Yuqori
iOSTo‘liq qo‘llab-quvvatlashTo‘liqTo‘liq (o‘rnatilgan)Self-hosted macOS orqali
AndroidTo‘liq qo‘llab-quvvatlashTo‘liqYo‘qTo‘liq
Sertifikatlar (match)O‘rnatilganCode Signing orqaliAvtomatikFastlane orqali
Mahalliy ishga tushirishHaYo‘q (faqat CI)Yo‘qact orqali
Plaginlar500+200+ integratsiyaYo‘q20 000+ action

Fastlane murakkab quvurlar uchun eng moslashuvchan vosita bo‘lib qolmoqda. Bitrise Ruby dasturchisi bo‘lmagan jamoalar uchun qulay. Xcode Cloud — oddiy iOS loyihalari uchun. GitHub Actions — agar jamoa allaqachon GitHub ni ishlatsa.

Tez-tez so‘raladigan savollar

Kotlin va Swift bor ekan, mobil ishlanmada Ruby nima uchun kerak?

Ruby mobil ilovalarni yozish uchun emas, balki Fastlane orqali qurish, testlash va joylashtirish jarayonlarini avtomatlashtirish uchun ishlatiladi. Fastlane iOS va Android ishlanmasida CI/CD uchun de-fakto standartdir.

Fastlane faqat macOS da ishlaydimi?

Fastlane macOS, Linux va Windows da ishlaydi, ammo iOS qurish uchun Xcode va macOS talab qilinadi. Android qurilishlari istalgan platformada bajariladi. Mahalliy dasturchilar macOS dan foydalanadi, CI da — iOS uchun macOS va Android uchun Linux.

Fastlane bilan ishlash uchun Ruby ni o‘rganish kerakmi?

Ruby ni asosiy tushunish Fastlane bilan ishlash uchun yetarli. Fastlane Fastfile da Ruby-ga o‘xshash DSL dan foydalanadi. Oddiy vazifalar uchun gemlar, do-end bloklari va asosiy sintaksisni bilish yetarli. Ruby ni chuqur bilish talab qilinmaydi.

Fastlane ning alternativlari qanday?

Alternativlar: Android uchun Gradle (o‘rnatilgan), Xcode Cloud (Apple), Bitrise (veb interfeys), GitHub Actions (YAML). Fastlane boy action va plagin ekotizimi tufayli eng moslashuvchan vosita bo‘lib qolmoqda.

Fastlane katta jamoalar uchun mosmi?

Ha, Fastlane katta kompaniyalar tomonidan ishlatiladi. Barcha actionlar va konfiguratsiya fayllari repozitorda versiyalanadi, match esa sertifikatlarni repozitor yoki S3 da xavfsiz saqlashni ta‘minlaydi.

Xulosa

  • Ruby — mobil ishlanmada Fastlane ekotizimi orqali qurilishni avtomatlashtirish uchun ishlatiladigan dinamik til
  • Fastlane — iOS va Android uchun CI/CD standarti: 200+ action, 500+ plagin, 100 000+ loyiha
  • Fastfile — Ruby-ga o‘xshash DSL: beta, release, screenshots turli qurilish stsenariylari uchun
  • Match dasturchilar o‘rtasida iOS sertifikatlari va provisioning profillarini sinxronlashtirish muammosini hal qiladi
  • Deliver va Supply — App Store va Google Play da metama’lumotlar va ekran tasvirlari bilan nashr qilish actionlari
  • CI/CD integratsiyasi — Fastlane GitHub Actions, GitLab CI, CircleCI va Bitrise da ishlaydi
  • Moslashuvchanlik — Fastlane Ruby da dasturlashtiriladigan quvur tufayli Bitrise va Xcode Cloud dan ustun

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