Ruby في تطوير التطبيقات المحمولة: Fastlane وCI/CD والأتمتة

المؤلف: IT Sectr نُشر: 2026-02-11 وقت القراءة: 8 دق

Ruby هي لغة ديناميكية مفسرة ذات بناء جملة أنيق، تشتهر بإطار العمل Ruby on Rails. في تطوير التطبيقات المحمولة، تُستخدم Ruby بشكل أساسي من خلال Fastlane — الأداة القياسية لأتمتة عمليات البناء والاختبار والنشر لتطبيقات iOS وAndroid. وفقاً للوثائق الرسمية لـ Fastlane، تُستخدم الأداة في أكثر من 100,000 مشروع حول العالم.

النقاط الرئيسية

  • Ruby — لغة ديناميكية تُستخدم في تطوير التطبيقات المحمولة عبر Fastlane لأتمتة البناء
  • Fastlane — المعيار الفعلي لـ CI/CD في تطوير iOS وAndroid، مكتوب بلغة Ruby
  • Fastfile — ملف تكوين يستخدم لغة DSL شبيهة بـ Ruby تصف عملية البناء
  • Match وDeliver — إجراءات Fastlane لإدارة الشهادات والنشر في App Store
  • Ruby Gems — مدير حزم يتيح توسيع Fastlane بالإضافات

ما هي Ruby؟

Ruby هي لغة ديناميكية مفسرة مفتوحة المصدر أنشأها يوكيهيرو ماتسوموتو في عام 1995. المبدأ الأساسي لـ Ruby هو "البساطة المثلى" (مبدأ أقل مفاجأة). تشتهر اللغة بالكتل (الإغلاقات)، والنهج النقي للبرمجة كائنية التوجه (كل شيء هو كائن، بما في ذلك الأرقام)، ونظام قوي للبرمجة الوصفية.

تعمل Ruby على مفسر YARV (Yet Another Ruby VM) مع ترجمة JIT منذ الإصدار 3.1. الإصدار الحالي Ruby 3.4 (2025) يتضمن المُزَيِّنات (decorators)، ومحللاً محسّناً Prism، ودعماً تجريبياً للأنواع من خلال RBS. RubyGems — مدير الحزم — يحتوي على أكثر من 200,000 حزمة.

Ruby on Rails هو إطار الويب الأكثر شهرة المبني بلغة Ruby، لكن في تطوير التطبيقات المحمولة تُستخدم Ruby بشكل مختلف. مجالاتها الرئيسي هو Fastlane: نظام بيئي من نصوص Ruby والحزم لأتمتة جميع مراحل دورة حياة التطبيق المحمول — من توقيع الكود إلى النشر في المتاجر.

أساسيات بناء جملة Ruby لـ Fastlane

العمل مع Fastlane يتطلب فقط فهماً أساسياً لـ Ruby: الدوال، كتل do-end، الرموز (:symbol)، وبناء جملة التجزئة { key: value }. على عكس Python، تستخدم Ruby كلمة end لإغلاق الكتل بدلاً من المسافات البادئة. يمكن استدعاء الدوال بدون أقواس — وهذا يُستخدم بنشاط في DSL الخاص بـ Fastlane.

ruby
# بناء جملة Ruby الأساسي المستخدم في 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")

في المثال، الدالة 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 هو ملف DSL شبيه بـ Ruby يصف تسلسلاً من الإجراءات (الممرات). كل ممر هو مهمة منفصلة: beta (بناء اختباري)، release، screenshots. يمكن للممرات استدعاء ممرات أخرى بمعاملات مُمررة.

ruby
# Fastfile — تكوين خط أنابيب بناء تطبيق iOS
fastlane_version "2.220.0"

default_platform :ios

platform :ios do
  desc "بناء ونشر build 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

الممر beta ينفذ بالتسلسل: زيادة رقم البناء (increment_build_number)، مزامنة الشهادات (match)، بناء الأرشيف (gym)، الرفع إلى TestFlight (upload_to_testflight)، وإرسال إشعار Slack. المعامل :build يُمرر للممر كوسيطة مسمى.

تكوين Android في Fastfile

يدعم 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

إجراءات Fastlane الرئيسية لـ iOS وAndroid

Fastlane تتضمن أكثر من 200 إجراء مدمج. فيما يلي الأكثر أهمية لتطوير التطبيقات المحمولة، مصنفة حسب الفئة.

الإجراءالمنصةالغرض
matchiOSمزامنة الشهادات وملفات التزويد عبر Git
gymiOSبناء أرشيفات .app و.ipa
scaniOSتشغيل اختبارات واجهة المستخدم على المحاكي
snapshotiOSإنشاء تلقائي للقطات الشاشة على أجهزة مختلفة
deliveriOSرفع البناء ولقطات الشاشة والبيانات الوصفية إلى App Store Connect
pilotiOSإدارة TestFlight: رفع البنيات، إضافة المختبرين
gradleAndroidتشغيل مهام Gradle: assemble, test, bundle
supplyAndroidرفع APK/AAB والبيانات الوصفية إلى Google Play Console
screengrabAndroidلقطات شاشة تلقائية لـ Google Play
firebase_app_distributionكلتاهمارفع البناء إلى Firebase App Distribution

Match: إدارة آمنة للشهادات

match هي حزمة Fastlane لمزامنة شهادات iOS وملفات التزويد بين المطورين. جميع الأسرار مخزنة في مستودع Git مشفر أو S3. يقوم match تلقائياً بإنشاء الشهادات إذا كانت مفقودة وتجديدها عند انتهاء صلاحيتها.

ruby
# تهيئة match لمشروع جديد
$ fastlane match init

# إنشاء ومزامنة شهادات App Store
$ fastlane match appstore

# إنشاء شهادات Development للفريق
$ fastlane match development

# تحديث جميع الشهادات عند انتهاء الصلاحية
$ fastlane match --force

يخزن match المفاتيح الخاصة بعبارة مرور لا يعرفها إلا المطورون. كل مطور يستنسخ مستودع الشهادات ويشغل match لتثبيت الملفات الشخصية الحالية. شهادات Apple صالحة لمدة عام واحد؛ يقوم match بتجديدها تلقائياً.

دمج Fastlane مع أنظمة CI/CD

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 — CI/CD مع 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 }}

يتم تشغيل سير العمل عند الدفع إلى main. ينفذ بيئة macOS الأمر bundle exec fastlane beta من Fastfile. يتم تمرير MATCH_PASSWORD عبر GitHub Secrets لفك تشفير الشهادات. بعد اكتمال الممر، يرسل إجراء Slack إشعاراً.

Ruby Gems وإضافات Fastlane

RubyGems هو مدير حزم Ruby. يتم توسيع Fastlane من خلال الإضافات — حزم تضيف إجراءات جديدة. الإضافة fastlane-plugin-versioning تدير الإصدارات، fastlane-plugin-firebase_app_distribution ترفع البنيات إلى Firebase. هناك أكثر من 500 إضافة Fastlane على GitHub.

يحدد Gemfile في جذر المشروع إصدارات جميع التبعيات لضمان تكرارية البنيات. bundle install يثبت الحزم من Gemfile.lock. الحزم الأساسية لتطوير التطبيقات المحمولة تشمل: 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 بالفعل.

الأسئلة الشائعة

لماذا نستخدم Ruby في تطوير التطبيقات المحمولة إذا كان Kotlin وSwift موجودين؟

Ruby لا تُستخدم لكتابة تطبيقات المحمولة، بل لأتمتة عمليات البناء والاختبار والنشر عبر Fastlane. Fastlane هو المعيار الفعلي لـ CI/CD في تطوير iOS وAndroid.

هل يعمل Fastlane فقط على macOS؟

Fastlane يعمل على macOS وLinux وWindows، لكن بنيات iOS تتطلب Xcode وmacOS. يمكن تشغيل بنيات Android على أي منصة. يستخدم المطورون macOS محلياً، وفي CI — macOS لـ iOS وLinux لـ Android.

هل أحتاج لتعلم Ruby للعمل مع Fastlane؟

فهم أساسي لـ Ruby كافٍ للعمل مع Fastlane. يستخدم Fastlane لغة DSL شبيهة بـ Ruby في Fastfile. للمهام النموذجية، يكفي معرفة الحزم وكتل do-end والبناء الأساسي. لا يتطلب معرفة عميقة بـ Ruby.

ما هي بدائل Fastlane؟

البدائل: Gradle لـ Android (مدمج)، Xcode Cloud (Apple)، Bitrise (واجهة ويب)، GitHub Actions (YAML). تظل Fastlane الأداة الأكثر مرونة بفضل نظامها الغني من الإجراءات والإضافات.

هل Fastlane مناسب للفرق الكبيرة؟

نعم، Fastlane تُستخدم من قبل الشركات الكبيرة. جميع الإجراءات وملفات التكوين مُدارة بالإصدارات في المستودع، ويضمن match التخزين الآمن للشهادات في مستودع أو S3.

الخلاصة

  • Ruby — لغة ديناميكية تُستخدم في تطوير التطبيقات المحمولة عبر نظام Fastlane البيئي لأتمتة البناء
  • Fastlane — معيار CI/CD لـ iOS وAndroid: أكثر من 200 إجراء، أكثر من 500 إضافة، أكثر من 100,000 مشروع
  • Fastfile — لغة DSL شبيهة بـ Ruby مع ممرات: beta، release، screenshots لسيناريوهات بناء مختلفة
  • Match يحل مشكلة مزامنة شهادات iOS وملفات التزويد بين المطورين
  • Deliver وSupply — إجراءات للنشر في App Store وGoogle Play مع البيانات الوصفية ولقطات الشاشة
  • دمج CI/CD — Fastlane تعمل مع GitHub Actions وGitLab CI وCircleCI وBitrise
  • المرونة — Fastlane تتفوق على Bitrise وXcode Cloud بفضل خط الأنابيب القابل للبرمجة بلغة Ruby

سنقوم بتطوير تطبيق جوال جاهز

تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.

مناقشة المشروع

اقرأ أيضًا