Fastlane: ما هو، أتمتة البناء والنشر

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

Fastlane هي أداة لأتمتة بناء ونشر التطبيقات المحمولة لنظامي iOS و Android. تدير Fastlane توقيع الكود، والبناء، وتشغيل الاختبارات، وإنشاء لقطات الشاشة، والرفع إلى App Store Connect و Google Play Console. وهي المعيار الفعلي لـ CI/CD في تطوير التطبيقات المحمولة.

الخلاصات الرئيسية

  • Fastlane تؤتمت مسار الإصدار المحمول بالكامل: البناء والاختبار والتوقيع والنشر بأمر واحد
  • Fastfile هو ملف تكوين بلغة Ruby يصف lanes — سيناريوهات أتمتة مسماة
  • دعم iOS و Android — يعمل Fastlane مع Xcode و Gradle و App Store Connect و Google Play و TestFlight و Firebase
  • match و sigh — إدارة الشهادات وملفات التزويد لتطوير iOS
  • التكامل مع CI/CD — يتكامل Fastlane مع GitHub Actions و GitLab CI و Bitrise و Jenkins و CircleCI

Fastlane — ما هو

Fastlane هي أداة مفتوحة المصدر تؤتمت المهام الروتينية لتطوير التطبيقات المحمولة: بناء التطبيق، تشغيل الاختبارات، إنشاء لقطات الشاشة، إدارة الشهادات، ورفع الإصدارات إلى TestFlight و App Store و Google Play. Fastlane مكتوبة بلغة Ruby وتُوزع عبر RubyGems بأمر gem install fastlane.

ظهرت Fastlane في 2015 كأداة لنظام iOS لكنها توسعت بسرعة إلى Android. اليوم هي نظام بيئي من عشرات الأوامر — أوامر مدمجة يمكن دمجها في سيناريوهات تسمى lanes. كل lane يؤدي مهمة محددة: مثلاً، build_release يبني إصدار الإصدار، و deploy_beta يرفع الإصدار إلى TestFlight.

تستخدم Fastlane شركات مثل Uber و Airbnb و Snapchat و Twitter و Shopify. وفقاً لاستطلاع 2024، أكثر من 60% من مطوري iOS يستخدمون Fastlane في مشاريعهم. تدعم الأداة التشغيل المحلي والتكامل مع أنظمة CI السحابية، مما يجعلها المعيار الفعلي لـ CI/CD المحمول.

ruby
# تثبيت Fastlane
sudo gem install fastlane -NV

# التهيئة في المشروع
fastlane init

بعد التهيئة، ينشئ Fastlane دليلاً fastlane/ بثلاثة ملفات: Fastfile (السيناريوهات)، Appfile (إعدادات التطبيق)، و Matchfile (إعدادات الشهادات). يظل هذا الهيكل نفسه لكلتا المنصتين — iOS و Android.

Fastfile و lanes

ملف التكوين الرئيسي لـ Fastlane هو Fastfile. يوجد في دليل fastlane/ في جذر المشروع. يُكتب Fastfile بلغة Ruby: كل lane هو كتلة مسماة بسلسلة من الأوامر. يمكن أن يستقبل lane معاملات، ويستدعي lanes أخرى، ويعيد قيماً.

ruby
# fastlane/Fastfile — مثال لنظام iOS
default_platform(:ios)

platform :ios do
  desc "Build and upload to TestFlight"
  lane :beta do
    match(type: "appstore")
    gym(scheme: "MyApp", configuration: "Release")
    pilot(skip_waiting_for_build: true)
  end

  desc "Deploy to App Store"
  lane :release do
    ensure_git_status_clean
    match(type: "appstore")
    gym(scheme: "MyApp")
    deliver(
      skip_metadata: true,
      skip_screenshots: true
    )
    push_to_git_remote(tags: true)
  end
end

يتم تشغيل كل lane بأمر fastlane ios beta أو fastlane ios release. يدعم Fastfile المتغيرات والشرطيات والحلقات واستدعاء السكريبتات الخارجية — إنه ملف Ruby كامل. يمكن للمطورين إعادة استخدام الكود عبر private_lane (طرق محلية) و import من Fastfiles أخرى.

يوفر Fastlane أكثر من 200 أمر مدمج لمعظم المهام. إذا لم يكن الأمر المطلوب موجوداً، يمكن كتابة أمر مخصص بلغة Ruby أو استدعاء أمر شيل عبر sh("..."). يمكن للأوامر استقبال معاملات — إعدادات البناء، مسارات، رموز وصول — وإعادة نتائج لاستخدامها في الخطوات التالية.

أتمتة بناء iOS

يحل Fastlane لنظام iOS ثلاث مشاكل رئيسية: إدارة الشهادات وملفات التزويد، بناء IPA عبر Xcode، والنشر إلى App Store Connect و TestFlight. كل مهمة من هذه المهام تُغطى بأمر منفصل.

match هو أمر لإدارة الشهادات. يخزن جميع الشهادات وملفات التزويد في مستودع Git مشفر. كل مطور وخادم CI يستخدمون نفس مجموعة الملفات، مما يلغي التعارضات ومشاكل الشهادات منتهية الصلاحية. يقوم Match بتحديث الملفات تلقائياً عند إضافة أجهزة جديدة.

sigh ينشئ ويحمّل ملف التزويد عبر Apple Developer Portal. يُستخدم عندما تحتاج إلى الحصول بسرعة على ملف لنوع محدد: development أو ad-hoc أو appstore.

gym يبني IPA. يغلف Gym xcodebuild بمعاملات مثلى، ويختار تلقائياً المخطط والتكوين وخيارات التصدير وينشئ IPA موقعاً. مثال: gym(scheme: "MyApp", export_method: "app-store").

pilot يدير TestFlight. يرفع الإصدار ويضيف المختبرين ويتتبع حالة المراجعة. deliver يتولى النشر الكامل في App Store، بما في ذلك البيانات الوصفية ولقطات الشاشة والتسعير والإصدارات.

ruby
# بناء ونشر تطبيق iOS
lane :deploy_ios do
  cocoapods
  match(type: "appstore", readonly: true)
  gym(scheme: "MyApp", export_method: "app-store")
  pilot(changelog: "Bug fixes and performance improvements")
end

للعمل مع App Store Connect، يلزم رموز وصول. يدعم Fastlane طريقتين للمصادقة: مفتاح API الخاص بـ App Store Connect (موصى به) و Apple ID مع المصادقة ثنائية العامل. مفاتيح API أكثر ملاءمة لـ CI/CD لأنها لا تتطلب إدخال كلمة المرور تفاعلياً.

الأمرالغرضالمعادل اليدوي
matchإدارة الشهادات والملفاتApple Developer Portal
sighإنشاء ملف التزويدXcode + Developer Portal
gymبناء IPAxcodebuild + xcrun
pilotالرفع إلى TestFlightXcode Organizer
deliverالنشر في App StoreApp Store Connect Web
scanتشغيل اختبارات UIxcodebuild test

أتمتة بناء Android

في Android، يؤتمت Fastlane البناء عبر Gradle، وتوقيع APK و AAB، والرفع إلى Google Play Console و Firebase App Distribution.

gradle هو الأمر الرئيسي لبناء Android. يستدعي غلاف Gradle بالمهام المطلوبة: gradle(task: "assembleRelease") أو gradle(task: "bundleRelease") لـ AAB. يمكن تمرير العلامات ومتغيرات البيئة والمسار إلى gradle.properties.

supply يرفع APK أو AAB إلى Google Play Console. يدير Supply الإصدارات والمسارات (internal و alpha و beta و production) وملاحظات الإصدار والتسعير والتوزيع حسب البلد. مثال: supply(track: "beta", release_status: "completed").

screengrab ينشئ لقطات شاشة لـ Google Play. يشغل اختبارات الأجهزة التي تلتقط لقطات شاشة للتطبيق على أجهزة ولغات مختلفة. يتم رفع لقطات الشاشة الناتجة عبر supply.

ruby
# بناء ونشر تطبيق Android
lane :deploy_android do
  gradle(task: "clean bundleRelease")
  supply(
    track: "beta",
    release_status: "completed",
    version_code: 42
  )
end
الأمرالغرضالمعادل اليدوي
gradleالبناء عبر Gradle./gradlew assembleRelease
supplyالرفع إلى Google PlayGoogle Play Console Web
screengrabإنشاء لقطات الشاشةلقطة يدوية + ImageMagick
firebase_app_distributionالتوزيع عبر FirebaseFirebase Console Upload

التكامل مع CI/CD

صُمم Fastlane للعمل في مسارات CI/CD. يتعامل بشكل صحيح مع الوضع غير التفاعلي ومتغيرات البيئة ونتاجات البناء. فيما يلي أمثلة للتكامل مع أنظمة CI الشائعة.

في GitHub Actions، يُشغل Fastlane كسكريبت Ruby. سير العمل النموذجي: تثبيت Ruby و Fastlane، تكوين المفاتيح (الشهادات ورموز API عبر secrets)، وتشغيل lane. iOS يتطلب مشغل macOS؛ Android يعمل على ubuntu-latest.

في GitLab CI، يُستخدم Fastlane في .gitlab-ci.yml بإعداد مماثل: تثبيت التبعيات، تشغيل fastlane، وتمرير النتائج. يدعم GitLab CI مشغلات macOS و Linux.

Bitrise — منصة CI/CD متخصصة للتطبيقات المحمولة — لديها دعم مدمج لـ Fastlane. يمكن لـ Bitrise Workflow استدعاء خطوة Fastlane أو تشغيل سكريبتات مخصصة مع fastlane. يدير Bitrise الشهادات عبر مدير توقيع الكود الخاص به.

ruby
# Fastfile لـ CI/CD مع تشغيل اختبارات شرطي
lane :ci_test do
  scan(scheme: "MyApp", code_coverage: true)
end

lane :ci_beta do
  ensure_git_status_clean
  version_bump_podspec(path: "MyApp.podspec")
  match(type: "appstore", readonly: true)
  gym(scheme: "MyApp", export_method: "app-store")
  pilot(distribute_external: true)
end

جانب مهم من التكامل مع CI/CD هو تخزين الأسرار. يستخدم Fastlane ملف .env عبر dotenv ومتغيرات البيئة. لنظام iOS، المتغيرات الهامة: MATCH_PASSWORD، FASTLANE_APPLE_API_KEY، FASTLANE_APPLE_API_KEY_ID. لنظام Android: SUPPLY_JSON_KEY_DATA — محتوى حساب خدمة Google Play.

أوامر Fastlane الشائعة

يتضمن Fastlane أكثر من 200 أمر مدمج. فيما يلي نظرة عامة على الأكثر شيوعاً مع منصتها ووصفها.

الأمرالمنصةالوصف
gymiOSبناء IPA بمعاملات xcodebuild محسنة
matchiOSمزامنة الشهادات وملفات التزويد عبر Git
pilotiOSرفع الإصدار إلى TestFlight وإدارة المختبرين
deliveriOSنشر التطبيق في App Store مع البيانات الوصفية
scaniOSتشغيل اختبارات الوحدة و UI مع إنشاء تقرير
gradleAndroidتشغيل مهام Gradle: assemble، bundle، test
supplyAndroidرفع APK و AAB إلى Google Play Console
screengrabAndroidلقطات شاشة تلقائية لـ Google Play
firebase_app_distributionAndroidتوزيع الإصدارات عبر Firebase
snapshotiOSلقطات شاشة تلقائية على المحاكيات لـ App Store
increment_build_numberiOSزيادة تلقائية لرقم البناء في مشروع Xcode
appcenter_uploadكلتاهمارفع الإصدار إلى App Center

للبحث عن الأمر المطلوب، استخدم الأمر fastlane action [الاسم] الذي يعرض التوثيق والمعاملات والأمثلة. القائمة الكاملة متاحة محلياً: fastlane actions.

يدعم Fastlane أيضاً الإضافات — إضافات مجتمعية تضيف أوامر جديدة. تُثبت الإضافات عبر fastlane add_plugin [الاسم] وتكون متاحة في سجل RubyGems. أمثلة على الإضافات الشائعة: fastlane-plugin-versioning (إدارة الإصدارات)، fastlane-plugin-sentry (رفع رموز التصحيح إلى Sentry)، fastlane-plugin-teams (الإشعارات في Microsoft Teams).

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

ما هو Fastlane ولماذا أحتاجه؟

Fastlane هي أداة لأتمتة بناء ونشر التطبيقات المحمولة. إنها تحل محل العمليات اليدوية — البناء والتوقيع والرفع إلى المتاجر — بأمر واحد. تقلل Fastlane وقت الإصدار من ساعات إلى دقائق وتزيل الأخطاء البشرية أثناء النشر.

هل يمكنني استخدام Fastlane لنظام Android فقط أو iOS فقط؟

نعم. تدعم Fastlane كلتا المنصتين بشكل مستقل. iOS يتطلب macOS، بينما Android يحتاج فقط إلى Linux. في Fastfile واحد يمكن فصل lanes حسب المنصة: platform :ios do ... end و platform :android do ... end.

كيف يدير Fastlane شهادات iOS؟

عبر الأمر match. يخزن الشهادات المشفرة وملفات التزويد في مستودع Git. كل مطور يستنسخ المستودع، ويقوم match بفك تشفير الملفات بكلمة المرور من متغير MATCH_PASSWORD ويُثبتها في سلسلة المفاتيح. هذا يحل مشكلة "يعمل على جهازي".

هل يعمل Fastlane مع Firebase App Distribution؟

نعم. Fastlane لديها أمر مدمج firebase_app_distribution لرفع APK و IPA إلى Firebase App Distribution. كما يتوفر firebase_app_distribution_add_testers لإضافة مختبرين. البديل هو الأمر appcenter_upload لـ App Center.

كيف أثبت Fastlane على خادم CI؟

يُثبت Fastlane عبر RubyGems: gem install fastlane -NV. iOS يتطلب macOS مع Xcode؛ Android يتطلب Linux أو macOS مع JDK و Android SDK. في GitHub Actions يوجد أمر جاهز ruby/setup-ruby لتثبيت Ruby و Fastlane. تُمرر متغيرات البيئة عبر أسرار نظام CI.

ما الفرق بين Fastlane و Bitrise أو Jenkins؟

Fastlane هي مكتبة و CLI لأتمتة مهام البناء والنشر. Bitrise و Jenkins هما منصتا CI/CD كاملتان. تعمل Fastlane داخلهما: Jenkins يشغل Fastlane كخطوة في pipeline، Bitrise يستدعي Fastlane عبر خطوة مخصصة. Fastlane لا تستبدل نظام CI — بل تكملّه بوظائف خاصة بالتطبيقات المحمولة.

الملخص

  • Fastlane — أداة مفتوحة المصدر لأتمتة بناء واختبار ونشر التطبيقات المحمولة لنظامي iOS و Android
  • Fastfile — ملف تكوين Ruby يصف lanes — سيناريوهات بسلسلة من الأوامر
  • match + gym + pilot — مسار iOS القياسي: إدارة الشهادات، بناء IPA، الرفع إلى TestFlight
  • gradle + supply — مسار Android القياسي: البناء عبر Gradle، الرفع إلى Google Play Console
  • تكامل CI/CD — يتكامل Fastlane مع GitHub Actions و GitLab CI و Bitrise و Jenkins و CircleCI عبر متغيرات البيئة
  • 200+ أمر — أوامر مدمجة للتوقيع والبناء والاختبار ولقطات الشاشة والنشر والإشعارات
  • الإضافات — إضافات مجتمعية تضيف أوامر جديدة: إدارة الإصدارات، Sentry، إشعارات المراسلة

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

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

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

اقرأ أيضًا