انتقال از CocoaPods

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

نمای کلی

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

برای هماهنگی با اطلاعیه 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 (SPM)

«مدیر بسته Swift» چیست؟

‫Swift Package Manager (SPM) ابزار بومی Apple برای مدیریت توزیع کد است. این ویژگی مستقیماً در Xcode ادغام شده است و نیاز به ابزارهای CLI خارجی مانند CocoaPods را ازبین می‌برد و با حذف نیاز به .xcworkspace برای اکثر پیکربندی‌های استاندارد، ساختار پروژه شما را ساده‌تر می‌کند.

انتقال به استفاده از «مدیر بسته Swift»

برای اکثر پروژه‌ها، انتقال به «مدیر بسته Swift» نیازی به تغییر کد برنامه شما ندارد، مگر اینکه پروژه شما پیکربندی‌های Xcode سفارشی یا وابستگی‌هایی داشته باشد که از دستورات نصب CocoaPods به‌طور گسترده استفاده می‌کنند.

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

  1. تأیید کنید که هریک از وابستگی‌های برنامه شما از «مدیر بسته Swift» پشتیبانی می‌کند. همه کتابخانه‌های Firebase از SPM پشتیبانی می‌کنند، اما باید پشتیبانی SPM را برای وابستگی‌های غیر Firebase در مخزن‌های GitHub یا صفحه‌های محصول آن‌ها بررسی کنید. اگر برخی‌از وابستگی‌های غیر Firebase شما از SPM پشتیبانی نمی‌کنند، استفاده از نصب دستی به‌جای SPM پایدارترین مسیر انتقال از CocoaPods است.
  2. با بسته بودن Xcode، CocoaPods را از پروژه‌تان بردارید:
    1. با اجرای فرمان زیر در دایرکتوری پروژه، وابستگی‌های CocoaPods را حذف نصب کنید:
      pod deintegrate
    2. ‫.xcworkspace تولیدشده توسط CocoaPods را حذف کنید.
  3. در Xcode، پروژه خود را با وابستگی‌های «مدیر بسته Swift» به‌روز کنید:
    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 منتقل می‌کند.

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

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

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

پرسشگان

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

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

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

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

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

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

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

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

خیر.

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

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

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

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

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