موبائل ڈویلپمنٹ میں Ruby: Fastlane، CI/CD اور آٹومیشن

مصنف: IT Sectr اشاعت: 2026-02-11 مطالعے کا وقت: 8 منٹ

Ruby ایک متحرک تفسیری زبان ہے جس کا سنٹیکس خوب ہے، جو Ruby on Rails فریم ورک کے لیے مشہور ہے۔ موبائل ڈویلپمنٹ میں، Ruby بنیادی طور پر Fastlane کے ذریعے استعمال ہوتی ہے — iOS اور Android ایپلیکیشنز کی بلڈ، ٹیسٹنگ اور ڈپلوئمنٹ کو آٹومیٹ کرنے کا معیاری ٹول۔ Fastlane کی سرکاری دستاویزات کے مطابق، یہ ٹول دنیا بھر میں 100,000 سے زیادہ منصوبوں میں استعمال ہوتا ہے۔

اہم نکات

  • Ruby — ایک متحرک زبان جو بلڈ آٹومیشن کے لیے Fastlane کے ذریعے موبائل ڈویلپمنٹ میں استعمال ہوتی ہے
  • Fastlane — iOS اور Android ڈویلپمنٹ میں CI/CD کا حقیقی معیار، Ruby میں لکھا گیا
  • Fastfile — ایک ترتیب فائل جو Ruby جیسی DSL استعمال کرتی ہے جو بلڈ کے عمل کو بیان کرتی ہے
  • Match اور Deliver — سرٹیفکیٹ مینجمنٹ اور App Store پر اشاعت کے لیے Fastlane کاروائیاں
  • Ruby Gems — ایک پیکیج مینیجر جو Fastlane کو پلگ ان کے ساتھ توسیع کرنے کی اجازت دیتا ہے

Ruby کیا ہے؟

Ruby ایک متحرک تفسیری اوپن سورس زبان ہے جو یوکیہیرو ماتسوموتو نے 1995 میں تیار کی تھی۔ Ruby کا بنیادی اصول "بہترین سادگی" (کم سے کم حیرت کا اصول) ہے۔ یہ زبان بلاکس (کلوزر)، خالص آبجیکٹ اورینٹڈ اپروچ (سب کچھ ایک آبجیکٹ ہے، اعداد سمیت) اور ایک طاقتور میٹا پروگرامنگ سسٹم کے لیے مشہور ہے۔

Ruby ورژن 3.1 سے JIT ترتیب کے ساتھ YARV (Yet Another Ruby VM) تفسیر کرنے پر چلتی ہے۔ موجودہ ورژن Ruby 3.4 (2025) میں ڈیکوریٹرز، بہتر Prism پارسر اور RBS کے ذریعے تجرباتی ٹائپ سپورٹ شامل ہے۔ RubyGems — پیکیج مینیجر — میں 200,000 سے زیادہ gems ہیں۔

Ruby on Rails Ruby میں بنایا گیا سب سے مشہور ویب فریم ورک ہے، لیکن موبائل ڈویلپمنٹ میں Ruby مختلف طریقے سے استعمال ہوتی ہے۔ اس کا بنیادی میدان Fastlane ہے: کوڈ سائننگ سے لے کر اسٹور پر اشاعت تک موبائل ایپ کے لائف سائیکل کے تمام مراحل کو آٹومیٹ کرنے کے لیے Ruby اسکرپٹس اور gems کا ایک ایکو سسٹم۔

Fastlane کے لیے Ruby سنٹیکس کی بنیادی باتیں

Fastlane کے ساتھ کام کرنے کے لیے صرف Ruby کی بنیادی سمجھ بوجھ ضروری ہے: میتھڈز، do-end بلاکس، سمبلز (:symbol) اور ہیش سنٹیکس { key: value }۔ Python کے برعکس، Ruby انڈینٹیشن کے بجائے بلاکس کو بند کرنے کے لیے end استعمال کرتی ہے۔ میتھڈز کو قوسین کے بغیر بلایا جا سکتا ہے — یہ Fastlane DSL میں فعال طور پر استعمال ہوتا ہے۔

ruby
# Fastlane میں استعمال کیا جانے والا بنیادی Ruby سنٹیکس
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")

مثال میں، download_assets میتھڈ ایک version آرگومنٹ اور ایک اختیاری نامی پیرامیٹر platform (ڈیفالٹ "ios") لیتی ہے۔ #{...} کے ساتھ سٹرنگ انٹرپولیشن ویلیوز کو براہ راست سٹرنگز میں ایمبیڈ کرتی ہے۔ unless، if کے برعکس ہے — یہ کوڈ اس وقت چلاتی ہے جب شرط غلط ہو۔

Fastlane: Ruby کے ساتھ موبائل بلڈ آٹومیشن

Fastlane Ruby میں لکھا گیا ایک اوپن سورس ٹول ہے۔ gem install fastlane کے ذریعے انسٹال کیا جاتا ہے، یہ موبائل ڈویلپر کے سب سے معمولی کاموں کو آٹومیٹ کرنے کے لیے کمانڈز کا ایک سیٹ فراہم کرتا ہے: اسکرین شاٹ بنانا، کوڈ سائننگ، TestFlight اور Google Play Console میں اشاعت۔

Fastlane ٹولز پر مشتمل ہے: sigh (سرٹیفکیٹ مینجمنٹ)، match(ٹیموں میں سرٹیفکیٹ سنکرونائزیشن)، gym (iOS بلڈ)، gradle (Android بلڈ)، deliver (iOS اشاعت)، supply (Android اشاعت)، snapshot (اسکرین شاٹس)، scan (ٹیسٹنگ)۔ تمام ٹولز ایک ہی Fastfile سے قابل رسائی ہیں۔

بڑے منصوبوں میں، Fastlane ایک پائپ لائن میں 50+ کارروائیاں سنبھالتا ہے: ورژن اضافہ، CDN سے اثاثہ ڈاؤن لوڈ، بلڈ، سائننگ، App Store Connect پر اپ لوڈ، Slack اطلاع بھیجنا۔ پوری پائپ لائن ایک کمانڈ سے چلتی ہے: fastlane release۔

Fastfile: بلڈ پائپ لائن ترتیب

Fastfile ایک Ruby جیسی DSL فائل ہے جو کارروائیوں (لین) کی ترتیب بیان کرتی ہے۔ ہر لین ایک الگ کام ہے: beta (ٹیسٹ بلڈ)، release، screenshots۔ لین منتقل کردہ پیرامیٹرز کے ساتھ دوسری لین کو بلا سکتی ہیں۔

ruby
# Fastfile — iOS ایپ بلڈ پائپ لائن ترتیب
fastlane_version "2.220.0"

default_platform :ios

platform :ios do
  desc "TestFlight بلڈ بنانا اور ڈپلائے کرنا"
  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 پر اپ لوڈ ہوگیا"
    )
  end
end

بیٹا لین ترتیب وار عمل کرتی ہے: بلڈ نمبر بڑھانا (increment_build_number)، سرٹیفکیٹ سنک (match)، آرکائیو بنانا (gym)، TestFlight پر اپ لوڈ (upload_to_testflight) اور Slack اطلاع بھیجنا۔ :build پیرامیٹر ایک نامی آرگومنٹ کے طور پر لین کو منتقل کیا جاتا ہے۔

Fastfile میں Android ترتیب

Fastlane ایک ہی Fastfile میں دونوں پلیٹ فارمز کو سپورٹ کرتا ہے۔ Android کے لیے، platform :android کے اندر gradle، supply اور google_play_track_version_codes کارروائیوں کے ساتھ ایک لین استعمال کریں۔

ruby
platform :android do
  desc "APK بنانا اور 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

iOS اور Android کے لیے اہم Fastlane کاروائیاں

Fastlane میں 200 سے زیادہ بلٹ ان کارروائیاں شامل ہیں۔ نیچے موبائل ڈویلپمنٹ کے لیے سب سے اہم ہیں، زمرے کے مطابق ترتیب دی گئیں۔

کارروائیپلیٹ فارممقصد
matchiOSGit کے ذریعے سرٹیفکیٹ اور پروویژننگ پروفائل سنک کریں
gymiOS.app اور .ipa آرکائیو بنائیں
scaniOSسیمولیٹر پر UI ٹیسٹ چلائیں
snapshotiOSمختلف آلات پر خودکار اسکرین شاٹ جنریشن
deliveriOSبلڈ، اسکرین شاٹس اور میٹا ڈیٹا App Store Connect پر اپ لوڈ کریں
pilotiOSTestFlight مینجمنٹ: بلڈ اپ لوڈ، ٹیسٹر شامل کریں
gradleAndroidGradle کام چلائیں: assemble, test, bundle
supplyAndroidAPK/AAB اور میٹا ڈیٹا Google Play Console پر اپ لوڈ کریں
screengrabAndroidGoogle Play کے لیے خودکار اسکرین شاٹس
firebase_app_distributionدونوںFirebase App Distribution پر بلڈ اپ لوڈ کریں

Match: محفوظ سرٹیفکیٹ مینجمنٹ

match ڈویلپرز کے درمیان iOS سرٹیفکیٹ اور پروویژننگ پروفائل کو سنکرونائز کرنے کے لیے ایک Fastlane gem ہے۔ تمام راز ایک انکرپٹڈ Git ریپوزٹری یا S3 میں محفوظ ہوتے ہیں۔ Match خود بخود سرٹیفکیٹ بناتا ہے اگر وہ غائب ہیں اور میعاد ختم ہونے پر تجدید کرتا ہے۔

ruby
# نئے منصوبے کے لیے match شروع کرنا
$ fastlane match init

# App Store سرٹیفکیٹ بنانا اور سنک کرنا
$ fastlane match appstore

# ٹیم کے لیے Development سرٹیفکیٹ بنانا
$ fastlane match development

# میعاد ختم ہونے پر تمام سرٹیفکیٹ تجدید کرنا
$ fastlane match --force

Match پرائیویٹ کیز کو ایک پاسفریز کے ساتھ محفوظ کرتا ہے جو صرف ڈویلپرز جانتے ہیں۔ ہر ڈویلپر سرٹیفکیٹ ریپوزٹری کو کلون کرتا ہے اور موجودہ پروفائل انسٹال کرنے کے لیے match چلاتا ہے۔ Apple سرٹیفکیٹ 1 سال کے لیے درست ہیں؛ Match خود بخود ان کی تجدید کرتا ہے۔

CI/CD سسٹم کے ساتھ Fastlane کا انضمام

Fastlane کسی بھی CI/CD پلیٹ فارم کے ساتھ ضم ہوتا ہے: GitHub Actions، GitLab CI، CircleCI، Bitrise، Jenkins اور Xcode Cloud (xcode-build کے ذریعے)۔ Fastlane CI پر fastlane <lane_name> استعمال کرکے چلتا ہے اور کسی مرحلے کی ناکامی پر ایرر کوڈ لوٹاتا ہے۔

GitHub Actions سیٹ اپ میں Ruby، fastlane انسٹال کرنا اور bundle exec fastlane کے ذریعے لین چلانا شامل ہے۔ iOS بلڈ کے لیے macOS رنر ضروری ہے۔ Android بلڈ ubuntu-latest استعمال کر سکتے ہیں، جو سستا ہے۔

yaml
# .github/workflows/deploy.yml — Fastlane کے ساتھ 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 }}

ورک فلو main پر پش کرنے پر چلتا ہے۔ macOS رنر Fastfile سے bundle exec fastlane beta چلاتا ہے۔ MATCH_PASSWORD سرٹیفکیٹ ڈیکریپشن کے لیے GitHub Secrets کے ذریعے منتقل کی جاتی ہے۔ لین مکمل ہونے کے بعد، ایک Slack کارروائی اطلاع بھیجتی ہے۔

Ruby Gems اور Fastlane پلگ ان

RubyGems Ruby کے لیے پیکیج مینیجر ہے۔ Fastlane پلگ ان کے ذریعے توسیع کی جاتی ہے — gems جو نئی کارروائیاں شامل کرتی ہیں۔ fastlane-plugin-versioning پلگ ان ورژن کو منظم کرتا ہے، fastlane-plugin-firebase_app_distribution بلڈز کو Firebase پر اپ لوڈ کرتا ہے۔ GitHub پر 500 سے زیادہ Fastlane پلگ ان ہیں۔

پروجیکٹ روٹ پر Gemfile دوبارہ پیدا ہونے والی بلڈز کے لیے تمام انحصار کے ورژن مقرر کرتی ہے۔ bundle install Gemfile.lock سے gems انسٹال کرتی ہے۔ موبائل ڈویلپمنٹ کے لیے ضروری gems میں شامل ہیں: fastlane، cocoapods (iOS انحصار)، xcodeproj (.xcodeproj ہیرا پھیری)۔

ruby
# موبائل منصوبے کے لیے 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 بمقابلہ متبادل: طریقے کا موازنہ

Fastlane واحد آٹومیشن ٹول نہیں ہے۔ آئیے موبائل ٹیم کے لیے اہم معیار کی بنیاد پر اہم متبادلات سے موازنہ کریں۔

معیارFastlane (Ruby)Bitrise (ویب)Xcode Cloud (Apple)GitHub Actions (YAML)
لچکزیادہ سے زیادہ (کوڈ)درمیانی (مراحل)کم (محدود)اعلی
iOSمکمل سپورٹمکملمکمل (بلٹ ان)سیلف ہوسٹڈ macOS کے ذریعے
Androidمکمل سپورٹمکملنہیںمکمل
سرٹیفکیٹ (match)بلٹ انCode Signing کے ذریعےخودکارfastlane کے ذریعے
مقامی عملدرآمدہاںنہیں (صرف CI)نہیںact کے ذریعے
پلگ ان500+200+ انضمامکوئی نہیں20,000+ کارروائیاں

Fastlane پیچیدہ پائپ لائنز کے لیے سب سے لچکدار ٹول ہے۔ Bitrise ان ٹیموں کے لیے آسان ہے جن کے پاس Ruby ڈویلپر نہیں ہے۔ Xcode Cloud سادہ iOS منصوبوں کے لیے کام کرتا ہے۔ GitHub Actions مثالی ہے اگر ٹیم پہلے سے GitHub استعمال کرتی ہے۔

اکثر پوچھے گئے سوالات

Kotlin اور Swift موجود ہونے کے باوجود موبائل ڈویلپمنٹ میں Ruby کیوں استعمال کریں؟

Ruby موبائل ایپلیکیشن لکھنے کے لیے نہیں، بلکہ Fastlane کے ذریعے بلڈ، ٹیسٹنگ اور ڈپلائمنٹ کے عمل کو آٹومیٹ کرنے کے لیے استعمال ہوتی ہے۔ Fastlane iOS اور Android ڈویلپمنٹ میں CI/CD کا حقیقی معیار ہے۔

کیا Fastlane صرف macOS پر کام کرتا ہے؟

Fastlane macOS، Linux اور Windows پر کام کرتا ہے، لیکن iOS بلڈ کے لیے Xcode اور macOS کی ضرورت ہے۔ Android بلڈ کسی بھی پلیٹ فارم پر چل سکتے ہیں۔ ڈویلپر مقامی طور پر macOS استعمال کرتے ہیں، اور CI پر — iOS کے لیے macOS اور Android کے لیے Linux۔

کیا Fastlane کے ساتھ کام کرنے کے لیے Ruby سیکھنا ضروری ہے؟

Fastlane کے ساتھ کام کرنے کے لیے Ruby کی بنیادی سمجھ بوجھ کافی ہے۔ Fastlane Fastfile میں Ruby جیسی DSL استعمال کرتا ہے۔ عام کاموں کے لیے، gems، do-end بلاکس اور بنیادی سنٹیکس کا علم کافی ہے۔ گہری Ruby علم کی ضرورت نہیں ہے۔

Fastlane کے کون سے متبادل موجود ہیں؟

متبادل: Gradle Android کے لیے (بلٹ ان)، Xcode Cloud (Apple)، Bitrise (ویب انٹرفیس)، GitHub Actions (YAML)۔ Fastlane کارروائیوں اور پلگ ان کے بھرپور ایکو سسٹم کی بدولت سب سے لچکدار ٹول ہے۔

کیا Fastlane بڑی ٹیموں کے لیے موزوں ہے؟

ہاں، Fastlane بڑی کمپنیاں استعمال کرتی ہیں۔ تمام کارروائیاں اور ترتیب فائلیں ریپوزٹری میں ورژن کی جاتی ہیں، اور match ریپوزٹری یا S3 میں سرٹیفکیٹ کا محفوظ ذخیرہ یقینی بناتا ہے۔

خلاصہ

  • Ruby — ایک متحرک زبان جو بلڈ آٹومیشن کے لیے Fastlane ایکو سسٹم کے ذریعے موبائل ڈویلپمنٹ میں استعمال ہوتی ہے
  • Fastlane — iOS اور Android کے لیے CI/CD معیار: 200+ کارروائیاں، 500+ پلگ ان، 100,000+ منصوبے
  • Fastfile — مختلف بلڈ منظرناموں کے لیے لین (beta، release، screenshots) کے ساتھ Ruby جیسی DSL
  • Match ڈویلپرز کے درمیان iOS سرٹیفکیٹ اور پروویژننگ پروفائل سنکرونائزیشن کا مسئلہ حل کرتا ہے
  • Deliver اور Supply — میٹا ڈیٹا اور اسکرین شاٹس کے ساتھ App Store اور Google Play پر اشاعت کے لیے کارروائیاں
  • CI/CD انضمام — Fastlane GitHub Actions، GitLab CI، CircleCI اور Bitrise کے ساتھ کام کرتا ہے
  • لچک — Fastlane قابل پروگرام Ruby پائپ لائن کی بدولت Bitrise اور Xcode Cloud سے بہتر ہے

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں