انتقال از CocoaPods

‫CocoaPods اعلام کرده است که در دسامبر ۲۰۲۶ به حالت فقط خواندنی درمی‌آید و پس‌از آن نسخه‌های pod جدید دیگر قابل انتشار نخواهند بود. بخش‌های زیر اطلاعات بیشتری درباره این تغییر ارائه می‌دهند و نحوه انتقال برنامه‌هایتان به مدیران نصب دیگر را توضیح می‌دهند.

نمای کلی

  • چه چیزی تغییر خواهد کرد؟ ‫CocoaPods درحال انتقال به حالت فقط خواندنی است. Firebase 12 آخرین نسخه عمده منتشرشده در CocoaPods است و Firebase از اکتبر ۲۰۲۶ دیگر نسخه‌های جدید را در CocoaPods منتشر نخواهد کرد.
  • آیا برنامه‌ام ازکار می‌افتد؟ نه. نسخه‌های موجود کتابخانه‌های Firebase همچنان در دفتر ثبت CocoaPods دردسترس خواهند بود و برنامه‌های شما که از آن نسخه‌های CocoaPod استفاده می‌کنند تا زمانی که پشتیبانی از بوم‌سازگان CocoaPods ادامه داشته باشد به کار خود ادامه خواهند داد.
  • چرا باید انتقال دهید؟ برای ادامه دریافت جدیدترین ویژگی‌ها، بهبودهای عملکرد، و اصلاحات مهم، باید به Swift Package Manager یا نصب دستی مهاجرت کنید.

برای تطبیق با اعلامیه CocoaPods، Firebase انتشار نسخه‌های جدید در CocoaPods را در اکتبر ۲۰۲۶ متوقف خواهد کرد. این تغییرات بر همه پادهای زیر و وابستگی‌های فرعی آن‌ها تأثیر می‌گذارد:

پادهای Firebase تحت‌تأثیر قرارگرفته
Firebase FirebaseAuth FirebaseInstallations
FirebaseABTesting FirebaseCore FirebaseMessaging
FirebaseAI FirebaseCrashlytics FirebaseMLModelDownloader
FirebaseAILogic FirebaseDatabase FirebasePerformance
FirebaseAnalytics FirebaseFirestore FirebaseRemoteConfig
FirebaseAppCheck FirebaseFunctions FirebaseStorage
FirebaseAppDistribution FirebaseInAppMessaging

این تغییرات همچنین بر همه توزیع‌های Firebase که کیت توسعه نرم‌افزار Firebase Apple بومی را دربرمی‌گیرند، ازجمله کیت توسعه نرم‌افزار Firebase Unity، کیت توسعه نرم‌افزار Firebase C++‎، و 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 استفاده می‌کنند.

نحوه انتقال از CocoaPods به Swift Package Manager در اینجا آمده است:

  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، انتخاب هدف برنامه، و به‌روزرسانی کتابخانه‌ها در بخش چارچوب‌ها، کتابخانه‌ها، و محتوای جاسازی‌شده به‌روز کنید.

در اسناد Apple، درباره استفاده از SPM در Xcode بیشتر بدانید.

نصب دستی

نصب دستی چیست؟

نصب دستی شامل بارگیری بایگانی Firebase.zip است که حاوی XCFrameworks ازپیش کامپایل‌شده برای همه محصولات Firebase است. این به شما امکان می‌دهد کیت‌های توسعه نرم‌افزار خاصی را مستقیماً به پروژه Xcode خود بکشید و رها کنید بدون اینکه از مدیر وابستگی استفاده کنید.

انتقال به استفاده از نصب دستی

  1. درحالی‌که Xcode بسته است، CocoaPods را از پروژه‌تان بردارید:
    1. با اجرای فرمان زیر در دایرکتوری پروژه، وابستگی‌های CocoaPods را حذف نصب کنید:
      pod deintegrate
    2. .xcworkspace تولیدشده توسط CocoaPods را حذف کنید.
  2. مراحل موجود در راهنمای نصب ما را دنبال کنید تا Firebase را به‌صورت دستی به پروژه‌تان اضافه کنید.

انتقال برنامه‌های Unity،‏ C++‎، و Flutter

کیت توسعه نرم‌افزار Firebase در Unity و FlutterFire

برای اکثر توسعه‌دهندگان Unity و Flutter اقدامی لازم نیست. به‌روزرسانی به جدیدترین نسخه Firebase در Unity یا Flutter به‌طور خودکار مدیر وابستگی اساسی شما را در پلاتفرم‌های Apple به Swift Package Manager منتقل می‌کند.

توجه داشته باشید که اگر وابستگی‌های غیرFirebase را ازطریق CocoaPods مدیریت می‌کنید، ممکن است لازم باشد آن‌ها را به‌صورت دستی انتقال دهید.

کیت توسعه نرم‌افزار Firebase در ++C

اگر وابستگی‌های iOS زیربنایی را ازطریق CocoaPods اضافه می‌کردید، می‌توانید دستورالعمل‌های انتقال بالا را دنبال کنید تا وابستگی‌های Firebase CocoaPod خود را به‌روز کنید و به‌جای آن از Swift Package Manager استفاده کنید.

پرسشگان

باید بعداز اکتبر ۲۰۲۶ همچنان از CocoaPods استفاده کنم. چگونه برنامه‌ام را درحال اجرا نگه دارم؟

می‌توانید از نسخه‌های قدیمی Firebase pods استفاده کنید یا Firebase podspecs را از GitHub کپی کنید و آن‌ها را در مخزن مشخصات خودتان میزبانی کنید.

در هر دو حالت، توصیه می‌کنیم در اسرع وقت از CocoaPods مهاجرت کنید. پس‌از توقف پشتیبانی از CocoaPods در اکتبر ۲۰۲۶، دیگر پشتیبانی رسمی برای نصب Firebase مستقیماً از podspec ارائه نخواهیم داد. اگر تصمیم بگیرید podspecs خودتان را میزبانی کنید، مسئول به‌روز نگه داشتن آن‌ها خواهید بود.

چرا پشتیبانی از CocoaPods در اکتبر ۲۰۲۶ متوقف می‌شود درحالی‌که CocoaPods تا دسامبر ۲۰۲۶ قابل انتشار است؟

ما ماه اکتبر را انتخاب کردیم تا مطمئن شویم نسخه‌های نهایی منتشرشده در CocoaPods پایدار هستند پیش‌از اینکه ثبت در ماه دسامبر قفل شود. این خط زمان فرصت لازم را برای هماهنگ کردن ایمن این به‌روزرسانی‌های نهایی فراهم می‌کند و تضمین می‌کند که کیت‌های توسعه نرم‌افزار چندسکویی (که به کیت توسعه نرم‌افزار بومی وابسته هستند اما چرخه‌های انتشار با تأخیر دارند) زمان کافی برای آماده‌سازی نسخه‌های خود داشته باشند.

اگر به‌روزرسانی نکنم، برنامه‌ام ازکار می‌افتد؟

نه، این منسوخ شدن فقط بر نسخه‌های آتی کتابخانه‌های Firebase تأثیر می‌گذارد. Firebase 12 آخرین نسخه اصلی منتشرشده در CocoaPods است و نسخه‌های موجود (v12 و نسخه‌های قدیمی‌تر) در CocoaPods تا زمانی که پشتیبانی از بوم‌سازگان CocoaPods ادامه داشته باشد، قابل‌نصب و کاربردی باقی خواهند ماند.

آیا این موضوع بر صدور صورت‌حساب پروژه تأثیر می‌گذارد؟

خیر.

هنگام کامپایل کردن پروژه‌ام پس‌از انتقال به Swift Package Manager، خطای «FirebaseLibrary پیدا نشد» دریافت می‌کنم. چگونه این مشکل را برطرف کنم؟

مطمئن شوید بسته Firebase را به پروژه Xcode خود اضافه کرده‌اید.

هنگام افزودن بسته Firebase،‏ Xcode از شما می‌خواهد چارچوب‌های Firebase را به اهداف ساخت برنامه‌تان اضافه کنید. اگر فراموش کردید چارچوبی را درطول این مرحله اضافه کنید، همیشه می‌توانید آن را بعداً در تنظیمات هدف در بخش Build Phases > Link Binary with Libraries اضافه کنید. اگر پروژه‌تان حاوی چند هدف است، مطمئن شوید Firebase را به اهداف درست اضافه کرده‌اید.

آیا این انتقال خطوط لوله CI/CD من را خراب می‌کند؟

نه، خطوط لوله‌ای که pod install یا pod update را اجرا می‌کنند همچنان برای نسخه‌های موجود کار خواهند کرد. اما هیچ به‌روزرسانی جدیدی از کتابخانه Firebase را که پس‌از اکتبر ۲۰۲۶ منتشر شده باشد دریافت نخواهند کرد.