কোকোপড থেকে স্থানান্তরিত হন

CocoaPods ঘোষণা করেছে যে ২০২৬ সালের ডিসেম্বরে এটি রিড-অনলি হয়ে যাবে, যার পরে আর নতুন পড সংস্করণ প্রকাশ করা যাবে না। নিম্নলিখিত বিভাগগুলিতে এই পরিবর্তন সম্পর্কে আরও তথ্য দেওয়া হয়েছে এবং আপনার অ্যাপগুলিকে অন্যান্য ইনস্টলেশন ম্যানেজারে কীভাবে স্থানান্তর করবেন তা ব্যাখ্যা করা হয়েছে।

সংক্ষিপ্ত বিবরণ

  • কী পরিবর্তন হচ্ছে? CocoaPods একটি রিড-অনলি অবস্থায় চলে যাচ্ছে এবং Firebase ২০২৬ সালের অক্টোবর মাস থেকে CocoaPods-এ নতুন সংস্করণ প্রকাশ করা বন্ধ করে দেবে।
  • আমার অ্যাপ কি ভেঙে যাবে? না। ফায়ারবেস লাইব্রেরির বিদ্যমান সংস্করণগুলো কোকোয়া পডস রেজিস্ট্রি-তে অনির্দিষ্টকালের জন্য উপলব্ধ থাকবে এবং আপনার যে অ্যাপগুলো সেই কোকোয়া পড সংস্করণগুলো ব্যবহার করে, সেগুলো কাজ করতে থাকবে।
  • কেন মাইগ্রেট করবেন? সর্বশেষ ফিচার, পারফরম্যান্সের উন্নতি এবং গুরুত্বপূর্ণ ফিক্সগুলো পেতে থাকলে, আপনার সুইফট প্যাকেজ ম্যানেজার অথবা ম্যানুয়াল ইনস্টলেশনে মাইগ্রেট করা উচিত।

CocoaPods-এর ঘোষণা অনুযায়ী, Firebase ২০২৬ সালের অক্টোবর মাস থেকে CocoaPods-এ নতুন সংস্করণ প্রকাশ করা বন্ধ করে দেবে । এই পরিবর্তনগুলো নিম্নলিখিত সমস্ত পড এবং তাদের সাবডিপেন্ডেন্সিগুলোকে প্রভাবিত করবে:

প্রভাবিত ফায়ারবেস পডগুলি
Firebase FirebaseAuth FirebaseInstallations
FirebaseABTesting FirebaseCore FirebaseMessaging
FirebaseAI FirebaseCrashlytics FirebaseMLModelDownloader
FirebaseAILogic FirebaseDatabase FirebasePerformance
FirebaseAnalytics FirebaseFirestore FirebaseRemoteConfig
FirebaseAppCheck FirebaseFunctions FirebaseStorage
FirebaseAppDistribution FirebaseInAppMessaging

এই পরিবর্তনগুলি নেটিভ ফায়ারবেস অ্যাপল এসডিকে (Firebase Apple SDK) র‍্যাপ করে এমন সমস্ত ফায়ারবেস ডিস্ট্রিবিউশনকেও প্রভাবিত করবে, যার মধ্যে ফায়ারবেস ইউনিটি এসডিকে (Firebase Unity SDK) , ফায়ারবেস সি++ এসডিকে (Firebase C++ SDK) , এবং ফ্লাটারফায়ার (FlutterFire ) অন্তর্ভুক্ত।

আপনার অ্যাপল অ্যাপগুলি স্থানান্তর করুন

আপনি যদি CocoaPods থেকে অন্যান্য (নন-Firebase) ডিপেন্ডেন্সি মাইগ্রেট করেন, তবে মনে রাখবেন যে আপনার পুরো প্রোজেক্টের জন্য একটিমাত্র ইনস্টলেশন পদ্ধতি ব্যবহার করাই ইন্ডাস্ট্রির সেরা অনুশীলন। একই টার্গেটের মধ্যে CocoaPods এবং Swift Package Manager (SPM) একসাথে ব্যবহার করলে জটিল ডিপেন্ডেন্সি সাইকেল এবং বিল্ড এরর দেখা দিতে পারে। যদি আপনার নন-Firebase ডিপেন্ডেন্সিগুলো এখনও SPM সাপোর্ট না করে, তবে মাইগ্রেট করার সময় আপনার ওয়ার্কফ্লোকে সুসংহত করার জন্য Firebase লাইব্রেরিগুলোর ক্ষেত্রে ম্যানুয়াল ইনস্টলেশন ব্যবহার করাই সবচেয়ে স্থিতিশীল উপায়।

সুইফট প্যাকেজ ম্যানেজার (এসপিএম)

সুইফট প্যাকেজ ম্যানেজার কী?

সুইফট প্যাকেজ ম্যানেজার (SPM) হলো কোড ডিস্ট্রিবিউশন পরিচালনার জন্য অ্যাপলের নিজস্ব টুল। এটি সরাসরি এক্সকোড (Xcode)-এর সাথে সমন্বিত, ফলে কোকোয়া পড্‌স (CocoaPods)-এর মতো বাহ্যিক CLI টুলের প্রয়োজন হয় না এবং বেশিরভাগ স্ট্যান্ডার্ড কনফিগারেশনের জন্য .xcworkspace এর প্রয়োজনীয়তা দূর করে আপনার প্রোজেক্টের কাঠামোকে সরল করে তোলে।

সুইফট প্যাকেজ ম্যানেজার ব্যবহারে স্থানান্তরিত হন

বেশিরভাগ প্রোজেক্টের ক্ষেত্রে, সুইফট প্যাকেজ ম্যানেজারে স্থানান্তরিত হতে আপনার অ্যাপ্লিকেশন কোড পরিবর্তন করার প্রয়োজন হয় না, যদি না আপনার প্রোজেক্টে কাস্টম এক্সকোড কনফিগারেশন বা এমন কোনো ডিপেন্ডেন্সি থাকে যা কোকোয়া পডস ইনস্টল স্ক্রিপ্ট ব্যাপকভাবে ব্যবহার করে।

CocoaPods থেকে Swift Package Manager-এ স্থানান্তরিত হওয়ার উপায় নিচে দেওয়া হলো:

  1. আপনার অ্যাপের প্রতিটি ডিপেন্ডেন্সি সুইফট প্যাকেজ ম্যানেজার (Swift Package Manager) সাপোর্ট করে কিনা তা যাচাই করুন। সমস্ত ফায়ারবেস (Firebase) লাইব্রেরি এসপিএম (SPM) সাপোর্ট করে, কিন্তু আপনার নন-ফায়ারবেস ডিপেন্ডেন্সিগুলোর জন্য তাদের গিটহাব (GitHub) রিপোজিটরি বা প্রোডাক্ট পেজে এসপিএম সাপোর্ট আছে কিনা তা পরীক্ষা করতে হবে। যদি আপনার কিছু নন-ফায়ারবেস ডিপেন্ডেন্সি এসপিএম সাপোর্ট না করে, তাহলে এসপিএম-এর পরিবর্তে ম্যানুয়াল ইনস্টলেশন ব্যবহার করাই কোকোয়া পডস (CocoaPods) থেকে সরে আসার সবচেয়ে স্থিতিশীল মাইগ্রেশন পথ।
  2. Xcode বন্ধ থাকা অবস্থায়, আপনার প্রজেক্ট থেকে CocoaPods সরিয়ে ফেলুন:
    • আপনার প্রজেক্ট ডিরেক্টরিতে নিম্নলিখিত কমান্ডটি চালিয়ে আপনার CocoaPods ডিপেন্ডেন্সিগুলো আনইনস্টল করুন:
      pod deintegrate
    • CocoaPods দ্বারা তৈরি .xcworkspace ফাইলটি মুছে ফেলুন।
  3. Xcode-এ, Swift Package Manager ডিপেন্ডেন্সিগুলো দিয়ে আপনার প্রজেক্ট আপডেট করুন:
    • Xcode-এর মাধ্যমে আপনার প্রোজেক্টের .xcodeproj ফাইলটি খুলুন।
    • ফাইল > প্যাকেজ নির্ভরতা যোগ করুন ব্যবহার করে আপনার অ্যাপের নির্ভরতাগুলো পুনরায় যোগ করুন।
  4. একবার Firebase প্যাকেজটি যুক্ত হয়ে গেলে, আপনি Xcode-এর প্রজেক্ট সেটিংসে গিয়ে, আপনার অ্যাপ টার্গেট নির্বাচন করে এবং Frameworks, Libraries, ও Embedded Content-এর অধীনে থাকা লাইব্রেরিগুলো আপডেট করার মাধ্যমে আপনার নির্ভর করা Firebase লাইব্রেরিগুলো আপডেট করতে পারেন। Xcode-এ SPM ব্যবহার সম্পর্কে আরও জানতে Apple-এর ডকুমেন্টেশন দেখুন।

ম্যানুয়াল ইনস্টলেশন

ম্যানুয়াল ইনস্টলেশন বলতে কী বোঝায়?

ম্যানুয়াল ইনস্টলেশনের জন্য Firebase.zip আর্কাইভটি ডাউনলোড করতে হয়, যেটিতে সমস্ত Firebase প্রোডাক্টের জন্য প্রি-কম্পাইল করা XCFrameworks রয়েছে। এর ফলে আপনি কোনো ডিপেন্ডেন্সি ম্যানেজার ব্যবহার না করেই নির্দিষ্ট SDK-গুলো সরাসরি আপনার Xcode প্রোজেক্টে ড্র্যাগ অ্যান্ড ড্রপ করতে পারবেন।

ম্যানুয়াল ইনস্টলেশন ব্যবহারে স্থানান্তরিত হন

  1. Xcode বন্ধ থাকা অবস্থায়, আপনার প্রজেক্ট থেকে CocoaPods সরিয়ে ফেলুন:
    • আপনার প্রজেক্ট ডিরেক্টরিতে নিম্নলিখিত কমান্ডটি চালিয়ে আপনার CocoaPods ডিপেন্ডেন্সিগুলো আনইনস্টল করুন:
      pod deintegrate
    • CocoaPods দ্বারা তৈরি .xcworkspace ফাইলটি মুছে ফেলুন।
  2. আপনার প্রজেক্টে ম্যানুয়ালি ফায়ারবেস যোগ করতে আমাদের ইনস্টলেশন গাইডের ধাপগুলো অনুসরণ করুন।

আপনার ইউনিটি, সি++ এবং ফ্লাটার অ্যাপগুলো মাইগ্রেট করুন

ফায়ারবেস ইউনিটি এসডিকে এবং ফ্লাটারফায়ার

বেশিরভাগ ইউনিটি এবং ফ্লাটার ডেভেলপারদের জন্য কোনো পদক্ষেপের প্রয়োজন নেই। ইউনিটি বা ফ্লাটারে ফায়ারবেসের সর্বশেষ সংস্করণে আপডেট করলে, অ্যাপল প্ল্যাটফর্মে আপনার অন্তর্নিহিত ডিপেন্ডেন্সি ম্যানেজার স্বয়ংক্রিয়ভাবে সুইফট প্যাকেজ ম্যানেজারে স্থানান্তরিত হয়ে যাবে।

মনে রাখবেন, যদি আপনি CocoaPods-এর মাধ্যমে Firebase-বহির্ভূত নির্ভরতাগুলো পরিচালনা করেন, তাহলে আপনাকে সেগুলো ম্যানুয়ালি মাইগ্রেট করতে হতে পারে।

ফায়ারবেস সি++ এসডিকে

আপনি যদি CocoaPods-এর মাধ্যমে অন্তর্নিহিত iOS ডিপেন্ডেন্সিগুলো অন্তর্ভুক্ত করে থাকেন, তাহলে এর পরিবর্তে Swift Package Manager ব্যবহার করার জন্য আপনার Firebase CocoaPod ডিপেন্ডেন্সিগুলো আপডেট করতে উপরের মাইগ্রেশন নির্দেশাবলী অনুসরণ করতে পারেন।

প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী

আমাকে অক্টোবর ২০২৬-এর পরেও কোকোয়া পডস ব্যবহার চালিয়ে যেতে হবে। আমি আমার অ্যাপটি কীভাবে চালু রাখব?

আপনি হয় Firebase pod-এর পুরোনো সংস্করণগুলো ব্যবহার করতে পারেন, অথবা GitHub থেকে Firebase podspecs কপি করে আপনার নিজস্ব স্পেকস রিপোজিটরিতে হোস্ট করতে পারেন।

উভয় ক্ষেত্রেই, আমরা আপনাকে যত তাড়াতাড়ি সম্ভব CocoaPods থেকে সরে আসার পরামর্শ দিচ্ছি । অক্টোবর ২০২৬-এ CocoaPods-এর সাপোর্ট বন্ধ হয়ে যাওয়ার পর, আমরা পডস্পেক থেকে সরাসরি Firebase ইনস্টল করার জন্য কোনো আনুষ্ঠানিক সাপোর্ট প্রদান করব না। আপনি যদি নিজের পডস্পেক হোস্ট করার সিদ্ধান্ত নেন, তবে সেগুলোকে হালনাগাদ রাখার দায়িত্ব আপনারই থাকবে।

২০২৬ সালের ডিসেম্বর পর্যন্ত CocoaPods প্রকাশ করা গেলেও, কেন ২০২৬ সালের অক্টোবরে এর জন্য সমর্থন বন্ধ করে দেওয়া হচ্ছে?

ডিসেম্বরে রেজিস্ট্রি লক হওয়ার আগে CocoaPods-এ প্রকাশিত চূড়ান্ত সংস্করণগুলো যেন স্থিতিশীল থাকে, তা নিশ্চিত করতে আমরা অক্টোবর মাসটি বেছে নিয়েছি। এই সময়সীমাটি এই চূড়ান্ত আপডেটগুলোকে নিরাপদে সমন্বয় করার জন্য একটি প্রয়োজনীয় অবকাশ প্রদান করে এবং এটি নিশ্চিত করে যে ক্রস-প্ল্যাটফর্ম SDK-গুলো—যেগুলো নেটিভ SDK-এর উপর নির্ভরশীল কিন্তু যাদের রিলিজ চক্র বিলম্বিত—তাদের নিজস্ব রিলিজ প্রস্তুত করার জন্য যথেষ্ট সময় পায়।

আপডেট না করলে আমার অ্যাপটি কি কাজ করা বন্ধ করে দেবে?

না, এই বাতিলকরণটি শুধুমাত্র ফায়ারবেস লাইব্রেরির ভবিষ্যৎ রিলিজগুলোকেই প্রভাবিত করবে। কোকোয়া পড-এ থাকা বিদ্যমান সংস্করণগুলো ইনস্টলযোগ্য থাকবে এবং সেই পড সংস্করণগুলো ব্যবহার করে ডেপ্লয় করা অ্যাপগুলো প্রভাবিত হবে না।

এর ফলে কি প্রকল্পের বিলিং প্রভাবিত হয়?

না।

সুইফট প্যাকেজ ম্যানেজারে স্থানান্তরিত হওয়ার পর আমার প্রজেক্ট কম্পাইল করতে গিয়ে "FirebaseLibrary not found" এরর আসছে। আমি এটা কীভাবে ঠিক করব?

আপনার Xcode প্রজেক্টে Firebase প্যাকেজটি যোগ করা হয়েছে কিনা, তা নিশ্চিত করুন।

Firebase প্যাকেজ যোগ করার সময়, Xcode আপনাকে আপনার অ্যাপের বিল্ড টার্গেটগুলিতে Firebase ফ্রেমওয়ার্ক যোগ করতে বলবে। এই ধাপে যদি আপনি কোনো ফ্রেমওয়ার্ক যোগ করতে ভুলে যান, তবে আপনি পরে আপনার টার্গেটের সেটিংসে Build Phases > Link Binary with Libraries-এর অধীনে এটি যোগ করতে পারেন। যদি আপনার প্রোজেক্টে একাধিক টার্গেট থাকে, তবে নিশ্চিত করুন যে আপনি সঠিক টার্গেটগুলিতে Firebase যোগ করেছেন।

এই পরিবর্তনটি কি আমার CI/CD পাইপলাইনগুলিকে ভেঙে দেবে?

না, pod install বা pod update চালিত পাইপলাইনগুলো বিদ্যমান সংস্করণগুলোর জন্য কাজ করতে থাকবে। তবে, এগুলো অক্টোবর ২০২৬-এর পরে প্রকাশিত কোনো নতুন Firebase লাইব্রেরি আপডেট পুল করবে না।