CocoaPods 1.9.0 এবং Firebase 7 দিয়ে শুরু করে, আপনি চয়ন করতে পারেন যে আপনার Firebase নির্ভরতাগুলি স্থির বা গতিশীল ফ্রেমওয়ার্ক হিসাবে নির্মিত কিনা। আপনার নির্দিষ্ট গতিশীল লাইব্রেরি আচরণের প্রয়োজন না হলে আমরা স্ট্যাটিক ফ্রেমওয়ার্ক ব্যবহার করার পরামর্শ দিই।
মনে রাখবেন যে GitHub-এর বাইরে বিকশিত লাইব্রেরিগুলি শুধুমাত্র CocoaPods 1.9.0 এবং পরবর্তীতে স্ট্যাটিকভাবে লিঙ্ক করা যেতে পারে। বর্তমানে, এই লাইব্রেরির তালিকায় AdMob , Analytics , Firebase ML , এবং Performance Monitoring অন্তর্ভুক্ত রয়েছে৷ জিপ ফাইল, সুইফ্ট প্যাকেজ ম্যানেজার এবং কার্থেজ সহ অন্যান্য সমস্ত বিতরণ চ্যানেলগুলি কেবল স্ট্যাটিকভাবে লিঙ্কযুক্ত লাইব্রেরিগুলি সরবরাহ করে।
এই দস্তাবেজটি অ্যাপল প্ল্যাটফর্মে গতিশীল এবং স্ট্যাটিক লিঙ্কিংয়ের একটি কার্যকরী জ্ঞান অনুমান করে। আপনি যদি এই ধারণাগুলির সাথে অপরিচিত হন তবে নিম্নলিখিত ডকুমেন্টেশনগুলি দেখুন:
যেহেতু এই নথিটি লাইব্রেরি সংযোগের প্রকারের সাথে সম্পর্কিত এবং নন-এক্সিকিউটেবল রিসোর্স বান্ডেলগুলি লোড করার সাথে সম্পর্কিত, তাই লাইব্রেরি এবং ফ্রেমওয়ার্ক শব্দগুলি বিনিময়যোগ্যভাবে ব্যবহৃত হয়।
স্ট্যাটিক লিঙ্কিং
স্ট্যাটিক্যালি লিঙ্ক করা লাইব্রেরিগুলি বিল্ড টাইমে এক্সিকিউটেবল আপনার অ্যাপ্লিকেশানে বান্ডিল করা হয়। ফলস্বরূপ, স্ট্যাটিক লাইব্রেরির অবজেক্ট ফাইলগুলি আপনার অ্যাপ চালু হওয়ার সময় উপস্থিত থাকবে এবং ডায়নামিক লিঙ্কার দ্বারা অ্যাপ-লঞ্চের সময় সমাধান করার প্রয়োজন নেই। ফলস্বরূপ, স্ট্যাটিক লিঙ্কিং ব্যবহার করা অ্যাপগুলি দ্রুত লঞ্চ হবে। এটি একটি সামান্য বৃহত্তর বাইনারি/অ্যাপ এক্সিকিউটেবলের খরচে আসে, যদিও এটি লক্ষ করা উচিত যে বৃহত্তর এক্সিকিউটেবল সাইজটি বান্ডিলড ডায়নামিক লাইব্রেরির অভাব দ্বারা অফসেট করা হবে।
আপনি আপনার পডফাইলে স্পষ্টভাবে লিঙ্কেজ নির্দিষ্ট করে Firebase নির্ভরতার স্ট্যাটিক লিঙ্কিং জোর করতে পারেন:
# cocoapods >= 1.9.0
use_frameworks! :linkage => :static
ডাইনামিক লিঙ্কিং
ডায়নামিকভাবে লিঙ্ক করা লাইব্রেরিগুলি আপনার অ্যাপের মূল এক্সিকিউটেবল থেকে আলাদাভাবে আপনার অ্যাপ বান্ডেলে সংরক্ষিত থাকে এবং সেগুলিকে অ্যাপ-লঞ্চের সময় ডায়নামিক লিঙ্কার দ্বারা লোড করতে হবে। অ্যাপলের ফ্রেমওয়ার্কগুলি সমস্ত প্রক্রিয়াগুলির মধ্যে কোড-শেয়ারিং সক্ষম করার জন্য গতিশীলভাবে লিঙ্ক করা হয়েছে; একইভাবে, আপনি আপনার অ্যাপ এবং এক্সটেনশন লক্ষ্যগুলির মধ্যে কোড ভাগ করতে ডায়নামিক ফ্রেমওয়ার্ক ব্যবহার করতে পারেন। আপনি পৃথক অ্যাপ্লিকেশনগুলির মধ্যে গতিশীল কাঠামো ভাগ করতে পারবেন না, এমনকি যদি তারা উভয়ই একই বিকাশকারী দ্বারা স্বাক্ষরিত হয়।
আপনি যদি ফায়ারবেসকে একটি ডাইনামিক ফ্রেমওয়ার্ক টার্গেটের নির্ভরতা হিসাবে ব্যবহার করতে চান, তবে আপনাকে ফায়ারবেসকে গতিশীলভাবে লিঙ্ক করতে হবে; অন্যথায় আপনি আপনার অ্যাপের রানটাইমে ডুপ্লিকেট ক্লাস সংজ্ঞায় চলে যাবেন। ডাইনামিক লিঙ্কিং হল use_frameworks!
, কিন্তু আপনি এখনও স্পষ্টভাবে আপনার Podfile এ গতিশীল লিঙ্কেজ নির্দিষ্ট করতে পারেন:
# cocoapods >= 1.9.0
use_frameworks! :linkage => :dynamic
মনে রাখবেন ডায়নামিক লিঙ্কিং আপনার অ্যাপের লঞ্চের সময় বাড়িয়ে দিতে পারে, বিশেষ করে যদি আপনার অ্যাপের অনেক নির্ভরতা থাকে।