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