النقل من CocoaPods

أعلنت CocoaPods أنّها ستصبح للقراءة فقط في ديسمبر 2026، وبعد ذلك لن يكون بالإمكان نشر إصدارات جديدة من Pod. تقدّم الأقسام التالية مزيدًا من المعلومات حول هذا التغيير، وتوضّح كيفية نقل تطبيقاتك إلى مدراء تثبيت آخرين.

نظرة عامة

  • ما هي التغييرات؟ سيتم نقل CocoaPods إلى حالة القراءة فقط. ‫Firebase 12 هو آخر إصدار رئيسي يتم نشره على CocoaPods، وستتوقف Firebase عن نشر إصدارات جديدة على CocoaPods في أكتوبر 2026.
  • هل سيتعطّل تطبيقي؟ لا، ستظل الإصدارات الحالية من مكتبات Firebase متاحة في سجلّ CocoaPods، وستستمر تطبيقاتك التي تستخدم إصدارات CocoaPod هذه في العمل طالما أنّ منظومة CocoaPods المتكاملة لا تزال متاحة.
  • لماذا يجب نقل البيانات؟ لمواصلة الاستفادة من أحدث الميزات وتحسينات الأداء والإصلاحات المهمة، عليك نقل الاستخدام إلى Swift Package Manager أو التثبيت اليدوي.

استجابةً لإعلان CocoaPods، سيتوقف Firebase عن نشر إصدارات جديدة على CocoaPods في أكتوبر 2026. تؤثر هذه التغييرات على جميع مجموعات البيانات التالية وتبعياتها الفرعية:

مجموعات Firebase المتأثرة
Firebase FirebaseAuth FirebaseInstallations
FirebaseABTesting FirebaseCore FirebaseMessaging
FirebaseAI FirebaseCrashlytics FirebaseMLModelDownloader
FirebaseAILogic FirebaseDatabase FirebasePerformance
FirebaseAnalytics FirebaseFirestore FirebaseRemoteConfig
FirebaseAppCheck FirebaseFunctions FirebaseStorage
FirebaseAppDistribution FirebaseInAppMessaging

ستؤثر هذه التغييرات أيضًا في جميع إصدارات Firebase التي تتضمّن حزمة تطوير البرامج (SDK) لمنصّة Firebase على أجهزة Apple، بما في ذلك Firebase Unity SDK وFirebase C++ SDK وFlutterFire.

نقل تطبيقات Apple

إذا كنت بصدد نقل تبعيات أخرى (غير تابعة لـ Firebase) من CocoaPods، يُرجى العِلم أنّ أفضل الممارسات في المجال هي استخدام طريقة تثبيت واحدة لمشروعك بالكامل. قد يؤدي الجمع بين CocoaPods وSwift Package Manager (SPM) ضمن الهدف نفسه إلى حدوث دورات تبعية معقدة وأخطاء في عملية الإنشاء. إذا كانت التبعيات غير التابعة لمنصة Firebase لا تدعم SPM حتى الآن، فإن استخدام التثبيت اليدوي لمكتبات Firebase هو الطريقة الأكثر استقرارًا لدمج سير العمل أثناء عملية النقل.

‫Swift Package Manager (SPM)

ما هي أداة Swift Package Manager؟

‫Swift Package Manager (SPM) هي أداة Apple الأصلية لإدارة توزيع الرموز البرمجية. وهي مدمجة مباشرةً في Xcode، ما يلغي الحاجة إلى أدوات واجهة سطر الأوامر (CLI) الخارجية مثل CocoaPods، ويبسّط بنية مشروعك من خلال إلغاء الحاجة إلى .xcworkspace لمعظم الإعدادات العادية.

نقل البيانات لاستخدام Swift Package Manager

بالنسبة إلى معظم المشاريع، لا يتطلّب نقل البيانات إلى Swift Package Manager تغيير الرمز البرمجي للتطبيق ما لم يتضمّن مشروعك إعدادات Xcode مخصّصة أو تبعيات تستخدم نصوص تثبيت CocoaPods بشكل كبير.

في ما يلي كيفية نقل البيانات إلى Swift Package Manager من CocoaPods:

  1. تأكَّد من أنّ كل تبعيات تطبيقك متوافقة مع Swift Package Manager. تتوافق جميع مكتبات Firebase مع SPM، ولكن عليك التحقّق من توافق SPM مع التبعيات غير التابعة لـ Firebase في مستودعات GitHub أو صفحات المنتجات. إذا كانت بعض التبعيات غير التابعة لـ Firebase لا تتوافق مع SPM، فإنّ استخدام التثبيت اليدوي بدلاً من SPM هو مسار النقل الأكثر استقرارًا بعيدًا عن CocoaPods.
  2. بعد إغلاق Xcode، أزِل CocoaPods من مشروعك:
    1. ألغِ تثبيت تبعيات CocoaPods من خلال تنفيذ الأمر التالي في دليل مشروعك:
      pod deintegrate
    2. احذف ملف .xcworkspace الذي تم إنشاؤه من خلال CocoaPods.
  3. في Xcode، عدِّل مشروعك باستخدام تبعيات Swift Package Manager:
    1. افتح ملف .xcodeproj الخاص بمشروعك من خلال Xcode.
    2. أعِد إضافة تبعيات تطبيقك باستخدام ملف > إضافة تبعيات الحزمة.
  4. بعد إضافة حزمة Firebase، يمكنك تحديث مكتبات Firebase التي تعتمد عليها من خلال الانتقال إلى إعدادات المشروع في Xcode، واختيار هدف تطبيقك، وتحديث المكتبات ضمن الأطر والمكتبات والمحتوى المضمّن.

يمكنك الاطّلاع على مزيد من المعلومات حول استخدام SPM في Xcode في مستندات Apple.

التثبيت اليدوي

ما هو التثبيت اليدوي؟

يتضمن التثبيت اليدوي تنزيل أرشيف Firebase.zip، والذي يحتوي على XCFrameworks مجمّعة مسبقًا لجميع منتجات Firebase. يتيح لك ذلك سحب حزم SDK معيّنة وإفلاتها مباشرةً في مشروع Xcode بدون استخدام مدير تبعيات.

الانتقال إلى استخدام التثبيت اليدوي

  1. بعد إغلاق Xcode، أزِل CocoaPods من مشروعك:
    1. ألغِ تثبيت تبعيات CocoaPods من خلال تنفيذ الأمر التالي في دليل مشروعك:
      pod deintegrate
    2. احذف ملف .xcworkspace الذي تم إنشاؤه من خلال CocoaPods.
  2. اتّبِع الخطوات الواردة في دليل التثبيت لإضافة Firebase إلى مشروعك يدويًا.

نقل تطبيقات Unity وC++‎ وFlutter

‫Firebase Unity SDK وFlutterFire

ليس على معظم مطوّري Unity وFlutter اتّخاذ أي إجراء. سيؤدي التحديث إلى أحدث إصدار من Firebase على Unity أو Flutter إلى نقل مدير التبعية الأساسي على أنظمة Apple الأساسية تلقائيًا إلى Swift Package Manager.

يُرجى العِلم أنّه في حال إدارة التبعيات غير التابعة لـ Firebase من خلال CocoaPods، قد تحتاج إلى نقلها يدويًا.

Firebase C++ SDK

إذا كنت تدرج تبعيات iOS الأساسية من خلال CocoaPods، يمكنك اتّباع تعليمات نقل البيانات أعلاه لتحديث تبعيات Firebase CocoaPod لاستخدام Swift Package Manager بدلاً من ذلك.

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

أحتاج إلى مواصلة استخدام CocoaPods بعد أكتوبر 2026. كيف يمكنني إبقاء تطبيقي قيد التشغيل؟

يمكنك استخدام الإصدارات القديمة من مجموعات Firebase أو نسخ مواصفات مجموعات Firebase من GitHub واستضافتها في مستودع المواصفات الخاص بك.

في كلتا الحالتين، ننصحك بإيقاف استخدام CocoaPods في أقرب وقت ممكن. لن نقدّم دعمًا رسميًا لتثبيت Firebase مباشرةً من podspec بعد إيقاف دعم CocoaPods نهائيًا في أكتوبر 2026. إذا اخترت استضافة ملفات podspec الخاصة بك، ستكون مسؤولاً عن إبقائها محدّثة.

لماذا سيتم إيقاف CocoaPods نهائيًا في أكتوبر 2026 مع أنّه يمكن نشرها حتى ديسمبر 2026؟

اخترنا شهر أكتوبر لضمان استقرار الإصدارات النهائية المنشورة على CocoaPods قبل قفل السجلّ في ديسمبر. يوفّر هذا المخطط الزمني فترة زمنية كافية لتنسيق هذه التحديثات النهائية بأمان، ويضمن أنّ حِزم SDK التي تعمل على عدّة منصات، والتي تعتمد على حزمة SDK الأصلية ولكنّها تتأخر في دورات إصدارها، لديها الوقت الكافي لإعداد إصداراتها الخاصة.

هل سيتوقف تطبيقي عن العمل إذا لم أُحدّثه؟

لا، يؤثر هذا الإيقاف النهائي في الإصدارات المستقبلية من مكتبات Firebase فقط. ‫Firebase 12 هو آخر إصدار رئيسي يتم نشره على CocoaPods، وستظل الإصدارات الحالية (الإصدار 12 والإصدارات الأقدم) في CocoaPods قابلة للتثبيت والعمل طالما استمر دعم منظومة CocoaPods المتكاملة.

هل يؤثر ذلك في فوترة المشروع؟

الرقم

تظهر لي رسالة الخطأ "لم يتم العثور على FirebaseLibrary" عند تجميع مشروعي بعد نقل البيانات إلى Swift Package Manager. كيف أصلح هذا؟

تأكَّد من إضافة حزمة Firebase إلى مشروع Xcode.

عند إضافة حزمة Firebase، سيطلب منك Xcode إضافة أُطر عمل Firebase إلى أهداف إصدار تطبيقك. إذا نسيت إضافة إطار عمل خلال هذه الخطوة، يمكنك دائمًا إضافته لاحقًا في إعدادات الهدف ضمن مراحل الإنشاء > ربط الملفات الثنائية بالمكتبات (Build Phases > Link Binary with Libraries). إذا كان مشروعك يحتوي على أهداف متعددة، تأكَّد من إضافة Firebase إلى الأهداف الصحيحة.

هل ستؤدي عملية النقل هذه إلى تعطيل مسارات CI/CD؟

لا، ستستمر المسارات التي تستخدم pod install أو pod update في العمل مع الإصدارات الحالية. ومع ذلك، لن يتم سحب أي تحديثات جديدة لمكتبة Firebase يتم إصدارها بعد أكتوبر 2026.