Ruby sa mobile development: Fastlane, CI/CD at automation

May-akda: IT Sectr Nai-publish: 2026-02-11 Oras ng pagbabasa: 8 min

Ruby — isang dynamic na interpreted na wika na may eleganteng syntax, kilala sa Ruby on Rails framework. Sa mobile development, ang Ruby ay ginagamit pangunahin sa pamamagitan ng Fastlane — ang karaniwang tool para sa automation ng builds, pagsubok at pag-deploy ng iOS at Android app. Ayon sa opisyal na dokumentasyon ng Fastlane, ang tool ay ginagamit sa mahigit 100,000 proyekto sa buong mundo.

Mga Pangunahing Punto

  • Ruby — dynamic na wika na ginagamit sa mobile development sa pamamagitan ng Fastlane para sa automation ng build
  • Fastlane — de facto standard para sa CI/CD sa iOS at Android development, nakasulat sa Ruby
  • Fastfile — configuration file sa Ruby-like DSL na naglalarawan ng proseso ng build
  • Match at Deliver — Fastlane actions para sa pamamahala ng sertipiko at publikasyon sa App Store
  • Ruby Gems — package manager na nagpapahintulot sa pagpapalawak ng Fastlane gamit ang mga plugin

Ano ang Ruby?

Ruby — isang dynamic na interpreted na wika na may open source, nilikha ni Yukihiro Matsumoto noong 1995. Ang pangunahing prinsipyo ng Ruby — «optimal na simpleksidad» (principle of least surprise). Ang wika ay kilala sa mga bloke (closures), purong object-oriented na approach (lahat ay bagay, kabilang ang mga numero) at malakas na sistema ng metaprogramming.

Ang Ruby ay tumatakbo sa YARV interpreter (Yet Another Ruby VM) na may JIT compilation mula bersyon 3.1. Ang kasalukuyang bersyon Ruby 3.4 (2025) ay may kasamang mga dekorator, pinahusay na Prism parser at eksperimental na suporta sa uri sa pamamagitan ng RBS. RubyGems — ang package manager — ay naglalaman ng mahigit 200,000 gems.

Ruby on Rails — ang pinakakilalang web framework sa Ruby, ngunit sa mobile development ang Ruby ay ginagamit nang iba. Ang pangunahing niche — Fastlane: ecosystem ng mga Ruby script at gems para sa automation ng lahat ng yugto ng lifecycle ng mobile app: mula sa pag-sign ng mga sertipiko hanggang sa publikasyon sa mga tindahan.

Mga batayan ng Ruby syntax para sa Fastlane

Para sa pagtatrabaho sa Fastlane, sapat na ang pangunahing pag-unawa sa Ruby: mga method, do-end blocks, simbolo (:symbol) at hash syntax { key: value }. Hindi tulad ng Python, ang Ruby ay gumagamit ng end para isara ang mga block, hindi indentation. Ang mga method ay maaaring tawagan nang walang panaklong — ito ay aktibong ginagamit sa Fastlane DSL.

ruby
# Pangunahing Ruby syntax na ginagamit sa Fastlane
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")

Sa halimbawa, ang method na download_assets ay tumatanggap ng argument na version at opsyonal na pinangalanang parameter na platform (default ios). Ang string interpolation sa pamamagitan ng #{} ay naglalagay ng mga halaga nang direkta sa mga string. unless — kabaligtaran ng if, nag-e-execute ng code kung ang kondisyon ay mali.

Fastlane: automation ng mobile builds sa Ruby

Fastlane — isang open-source tool, nakasulat sa Ruby. Na-install sa pamamagitan ng gem install fastlane, nagbibigay ito ng set ng mga command para sa automation ng mga pinaka-routine na gawain ng mobile developer: paggawa ng mga screenshot, pag-sign ng code, publikasyon sa TestFlight at Google Play Console.

Ang Fastlane ay binubuo ng mga tool: sigh (pamamahala ng sertipiko), match (synchronization ng mga sertipiko sa team), gym (iOS build), gradle (Android build), deliver (iOS publication), supply (Android publication), snapshot (mga screenshot), scan (pagsubok). Lahat ng tool ay accessible mula sa isang Fastfile.

Sa malalaking proyekto, ang Fastlane ay humahawak ng hanggang 50+ actions sa isang pipeline: pagtaas ng bersyon, pag-download ng mga asset mula sa CDN, build, pag-sign, pag-upload sa App Store Connect, pagpapadala ng notification sa Slack. Ang buong pipeline ay isinasagawa sa isang command: fastlane release.

Fastfile: configuration ng build pipeline

Fastfile — isang file sa Ruby-like DSL na naglalarawan ng sequence ng mga aksyon (lane). Ang bawat lane ay isang hiwalay na gawain: beta (build para sa pagsubok), release (release), screenshots (pag-generate ng mga screenshot). Ang mga lane ay maaaring tumawag sa ibang lane na may mga ipinasa na parameter.

ruby
# Fastfile — configuration ng build pipeline ng iOS app
fastlane_version "2.220.0"

default_platform :ios

platform :ios do
  desc "Build at deploy ng TestFlight build"
  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]} ay na-upload sa TestFlight"
    )
  end
end

Ang beta lane ay sunod-sunod na nag-execute: pagtaas ng build number (increment_build_number), synchronization ng mga sertipiko (match), compilation ng archive (gym), pag-upload sa TestFlight (upload_to_testflight) at pagpapadala ng notification sa Slack. Ang parameter na :build ay ipinapasa sa lane bilang pinangalanang argument.

Android configuration sa Fastfile

Ang Fastlane ay sumusuporta sa parehong platform sa isang Fastfile. Para sa Android, ginagamit ang lane sa loob ng platform :android na may mga action na gradle, supply at google_play_track_version_codes.

ruby
platform :android do
  desc "APK build at publikasyon sa Google Play Internal Testing"
  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

Mga pangunahing Fastlane actions para sa iOS at Android

Fastlane ay may kasamang mahigit 200 built-in na actions. Sa ibaba — ang pinakamahalaga para sa mobile development, na pinagpangkat ayon sa kategorya.

ActionPlatformLayunin
matchiOSSynchronization ng mga sertipiko at provisioning profile sa pamamagitan ng Git
gymiOSCompilation ng .app at .ipa archive
scaniOSPagpapatakbo ng UI tests sa simulator
snapshotiOSAwtomatikong pag-generate ng mga screenshot sa iba’t ibang device
deliveriOSPag-upload ng build, screenshot at metadata sa App Store Connect
pilotiOSPamamahala ng TestFlight: pag-upload ng build, pagdagdag ng mga tester
gradleAndroidPagpapatakbo ng Gradle tasks: assemble, test, bundle
supplyAndroidPag-upload ng APK/AAB at metadata sa Google Play Console
screengrabAndroidAwtomatikong mga screenshot para sa Google Play
firebase_app_distributionParehoPag-upload ng build sa Firebase App Distribution

Match: ligtas na pamamahala ng sertipiko

match — isang Fastlane gem para sa synchronization ng iOS certificates at provisioning profile sa pagitan ng mga developer. Lahat ng mga lihim ay naka-imbak sa naka-encrypt na Git repository o S3. Awtomatikong gumagawa ang Match ng mga sertipiko kung wala at ina-update ang mga ito sa pag-expire.

ruby
# Pagsisimula ng match para sa bagong proyekto
$ fastlane match init

# Paggawa at synchronization ng App Store certificates
$ fastlane match appstore

# Paggawa ng Development certificates para sa team
$ fastlane match development

# Pag-update ng lahat ng certificates sa pag-expire
$ fastlane match --force

Ang Match ay nag-iimbak ng mga pribadong key na may passphrase na alam lamang ng mga developer. Ang bawat developer ay nag-clone ng repository ng sertipiko at nagpapatakbo ng match upang i-install ang kasalukuyang mga profile. Ang mga Apple certificate ay may bisa ng 1 taon, awtomatikong pinapalawig sila ng match.

Integrasyon ng Fastlane sa CI/CD system

Fastlane ay integrated sa anumang CI/CD platform: GitHub Actions, GitLab CI, CircleCI, Bitrise, Jenkins at Xcode Cloud (sa pamamagitan ng xcode-build). Ang Fastlane ay pinapatakbo sa CI sa pamamagitan ng fastlane <pangalan_lane> at nagbabalik ng error code kung may mabigo.

Configuration para sa GitHub Actions ay may kasamang pag-install ng Ruby, fastlane at pagpapatakbo ng lane sa pamamagitan ng bundle exec fastlane. Para sa iOS build, kailangan ang macOS runner. Para sa Android, maaaring gamitin ang ubuntu-latest, na mas mura.

yaml
# .github/workflows/deploy.yml — CI/CD sa Fastlane
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 }}

Ang workflow ay pinapatakbo sa push sa main. Ang macOS runner ay nag-execute ng bundle exec fastlane beta mula sa Fastfile. Ang MATCH_PASSWORD ay ipinapasa sa pamamagitan ng GitHub Secrets para i-decrypt ang mga sertipiko. Pagkatapos ng lane, ang Slack action ay nagpapadala ng notification.

Ruby Gems at Fastlane plugin

RubyGems — ang package manager para sa Ruby. Ang Fastlane ay pinalalawak sa pamamagitan ng mga plugin — mga gem na nagdaragdag ng mga bagong action. Ang plugin na fastlane-plugin-versioning ay namamahala ng mga bersyon, fastlane-plugin-firebase_app_distribution ay nag-uupload ng mga build sa Firebase. Sa GitHub mayroong mahigit 500 Fastlane plugin.

Ang Gemfile sa root ng proyekto ay nagtatakda ng mga bersyon ng lahat ng dependencies para sa reproducibility ng mga build. Ang bundle install ay nag-i-install ng mga gems ayon sa Gemfile.lock. Mga pangunahing gem para sa mobile development: fastlane, cocoapods (iOS dependencies), xcodeproj (paggawa gamit ang .xcodeproj).

ruby
# Gemfile para sa mobile project
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 laban sa mga alternatibo: paghahambing ng mga approach

Fastlane — hindi lamang ang automation tool. Ihambing natin ito sa mga pangunahing alternatibo ayon sa mga criteria na mahalaga para sa isang mobile team.

CriteriaFastlane (Ruby)Bitrise (web)Xcode Cloud (Apple)GitHub Actions (YAML)
FlexibilityMaximum (code)Katamtaman (steps)Mababa (limitado)Mataas
iOSBuong suportaBuongBuong (built-in)Sa pamamagitan ng self-hosted macOS
AndroidBuong suportaBuongWalaBuong
Mga sertipiko (match)Built-inSa pamamagitan ng Code SigningAwtomatikoSa pamamagitan ng fastlane
Lokal na pagpapatakboOoHindi (CI lang)HindiSa pamamagitan ng act
Mga plugin500+200+ integrasyonWala20,000+ actions

Ang Fastlane ay nananatiling pinaka-flexible na tool para sa mga kumplikadong pipeline. Ang Bitrise ay maginhawa para sa mga team na walang Ruby developer. Xcode Cloud — para sa mga simpleng iOS project. GitHub Actions — kung ang team ay gumagamit na ng GitHub.

Mga Madalas Itanong

Bakit Ruby sa mobile development kung may Kotlin at Swift?

Ruby ay hindi ginagamit para sa pagsulat ng mobile apps, kundi para sa automation ng mga proseso ng build, pagsubok at pag-deploy sa pamamagitan ng Fastlane. Ang Fastlane ay de facto standard para sa CI/CD sa iOS at Android development.

Gumagana lang ba ang Fastlane sa macOS?

Fastlane ay gumagana sa macOS, Linux at Windows, ngunit para sa iOS build ay kailangan ang Xcode at macOS. Ang mga Android build ay isinasagawa sa anumang platform. Lokal, ang mga developer ay gumagamit ng macOS, sa CI — macOS para sa iOS at Linux para sa Android.

Kailangan bang matuto ng Ruby para magtrabaho sa Fastlane?

Ang pangunahing pag-unawa sa Ruby ay sapat na para magtrabaho sa Fastlane. Ang Fastlane ay gumagamit ng Ruby-like DSL sa Fastfile. Para sa mga tipikal na gawain, sapat na ang kaalaman sa mga gem, do-end blocks at pangunahing syntax. Hindi kailangan ang malalim na kaalaman sa Ruby.

Ano ang mga alternatibo sa Fastlane?

Mga alternatibo: Gradle para sa Android (built-in), Xcode Cloud (Apple), Bitrise (web interface), GitHub Actions (YAML). Ang Fastlane ay nananatiling pinaka-flexible na tool dahil sa mayamang ecosystem ng mga action at plugin.

Angkop ba ang Fastlane para sa malalaking team?

Oo, ang Fastlane ay ginagamit ng malalaking kumpanya. Lahat ng action at configuration file ay na-version sa repository, at ang match ay nagbibigay ng ligtas na imbakan ng mga sertipiko sa repository o S3.

Buod

  • Ruby — dynamic na wika na ginagamit sa mobile development sa pamamagitan ng Fastlane ecosystem para sa automation ng build
  • Fastlane — CI/CD standard para sa iOS at Android: 200+ actions, 500+ plugin, 100,000+ proyekto
  • Fastfile — Ruby-like DSL na may mga lane: beta, release, screenshots para sa iba’t ibang build scenario
  • Match ay lumulutas sa problema ng synchronization ng iOS certificates at provisioning profile sa pagitan ng mga developer
  • Deliver at Supply — actions para sa publikasyon sa App Store at Google Play na may metadata at screenshots
  • CI/CD integrasyon — Fastlane ay gumagana sa GitHub Actions, GitLab CI, CircleCI at Bitrise
  • Flexibility — Fastlane ay higit sa Bitrise at Xcode Cloud dahil sa programmable pipeline sa Ruby

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din