Beginning with CocoaPods 1.9.0 and Firebase 7, you can choose whether your Firebase dependencies are built as static or dynamic frameworks. We recommend using static frameworks unless you require certain dynamic library behaviors.
Note that libraries developed outside of GitHub can only be linked statically even with CocoaPods 1.9.0 and later. Currently, this library list includes AdMob , Analytics , Firebase ML , and Performance Monitoring . All other distribution channels, including the zip file, Swift Package Manager, and Carthage provide statically linked libraries only.
এই ডকুমেন্টটি অ্যাপল প্ল্যাটফর্মে ডাইনামিক এবং স্ট্যাটিক লিঙ্কিং সম্পর্কে আপনার কার্যকরী জ্ঞান আছে বলে ধরে নেয়। আপনি যদি এই ধারণাগুলোর সাথে অপরিচিত হন, তাহলে নিম্নলিখিত ডকুমেন্টেশনটি দেখে নিন:
- ম্যাক-ও প্রোগ্রামিং বিষয়সমূহ
- ডাইনামিক লাইব্রেরি প্রোগ্রামিং বিষয়সমূহ
- লাইব্রেরিতে ফায়ারবেস ব্যবহার করা
যেহেতু এই ডকুমেন্টটি লাইব্রেরি লিঙ্কেজের প্রকারভেদ নিয়ে আলোচনা করে এবং নন-এক্সিকিউটেবল রিসোর্স বান্ডেল লোড করা নিয়ে নয়, তাই লাইব্রেরি এবং ফ্রেমওয়ার্ক শব্দ দুটি একই অর্থে ব্যবহৃত হয়েছে।
স্থির সংযোগ
স্ট্যাটিক্যালি লিঙ্ক করা লাইব্রেরিগুলো বিল্ড করার সময় আপনার অ্যাপ্লিকেশন এক্সিকিউটেবলের সাথে বান্ডল করা হয়। ফলে, স্ট্যাটিক লাইব্রেরির অবজেক্ট ফাইলগুলো আপনার অ্যাপ চালু হওয়ার সময়ই তাতে উপস্থিত থাকে এবং অ্যাপ চালুর সময় ডাইনামিক লিঙ্কার দ্বারা সেগুলোকে রিজলভ করার প্রয়োজন হয় না। এর ফলস্বরূপ, স্ট্যাটিক লিঙ্কিং ব্যবহারকারী অ্যাপগুলো দ্রুততরভাবে চালু হয়। এর জন্য বাইনারি / অ্যাপ এক্সিকিউটেবলের আকার কিছুটা বড় হয়, যদিও এটি উল্লেখ্য যে, বান্ডল করা ডাইনামিক লাইব্রেরির অনুপস্থিতির কারণে এক্সিকিউটেবলের এই বড় আকার পুষিয়ে যায়।
আপনার Podfile-এ লিঙ্কেজটি স্পষ্টভাবে উল্লেখ করে আপনি Firebase ডিপেন্ডেন্সিগুলির স্ট্যাটিক লিঙ্কিং বাধ্যতামূলক করতে পারেন:
# cocoapods >= 1.9.0
use_frameworks! :linkage => :static
ডাইনামিক লিঙ্কিং
ডাইনামিক্যালি লিঙ্ক করা লাইব্রেরিগুলো আপনার অ্যাপের মূল এক্সিকিউটেবল থেকে আলাদাভাবে আপনার অ্যাপ বান্ডেলে সংরক্ষিত থাকে এবং অ্যাপ চালু করার সময় ডাইনামিক লিঙ্কার দ্বারা সেগুলোকে অবশ্যই লোড করতে হয়। প্রসেসগুলোর মধ্যে কোড শেয়ারিং সক্ষম করার জন্য অ্যাপলের সমস্ত ফ্রেমওয়ার্ক ডাইনামিক্যালি লিঙ্ক করা হয়; একইভাবে, আপনি আপনার অ্যাপ এবং এক্সটেনশন টার্গেটগুলোর মধ্যে কোড শেয়ার করার জন্য ডাইনামিক ফ্রেমওয়ার্ক ব্যবহার করতে পারেন। আপনি আলাদা অ্যাপ্লিকেশনগুলোর মধ্যে ডাইনামিক ফ্রেমওয়ার্ক শেয়ার করতে পারবেন না, এমনকি যদি উভয়ই একই ডেভেলপার দ্বারা স্বাক্ষরিত হয়।
If you want to use Firebase as a dependency of a dynamic framework target, you also need to link Firebase dynamically; otherwise you'll run into duplicate class definitions in your app's runtime. Dynamic linking is the default behavior with use_frameworks! , but you can still explicitly specify dynamic linkage in your Podfile:
# cocoapods >= 1.9.0
use_frameworks! :linkage => :dynamic
মনে রাখবেন যে, ডাইনামিক লিঙ্কিং আপনার অ্যাপের চালু হওয়ার সময় বাড়িয়ে দিতে পারে, বিশেষ করে যদি আপনার অ্যাপে অনেকগুলো ডিপেন্ডেন্সি থাকে।