CocoaPods 1.9.0 এবং Firebase 7 দিয়ে শুরু করে, আপনি চয়ন করতে পারেন যে আপনার Firebase নির্ভরতাগুলি স্থির বা গতিশীল ফ্রেমওয়ার্ক হিসাবে নির্মিত কিনা। আপনার নির্দিষ্ট গতিশীল লাইব্রেরি আচরণের প্রয়োজন না হলে আমরা স্ট্যাটিক ফ্রেমওয়ার্ক ব্যবহার করার পরামর্শ দিই।
মনে রাখবেন যে GitHub-এর বাইরে বিকশিত লাইব্রেরিগুলি শুধুমাত্র CocoaPods 1.9.0 এবং পরবর্তীতে স্ট্যাটিকভাবে লিঙ্ক করা যেতে পারে। বর্তমানে, এই লাইব্রেরির তালিকায় AdMob , Analytics , Firebase ML , এবং Performance Monitoring অন্তর্ভুক্ত রয়েছে৷ জিপ ফাইল, সুইফ্ট প্যাকেজ ম্যানেজার এবং কার্থেজ সহ অন্যান্য সমস্ত বিতরণ চ্যানেলগুলি কেবল স্ট্যাটিকভাবে লিঙ্কযুক্ত লাইব্রেরিগুলি সরবরাহ করে।
এই দস্তাবেজটি অ্যাপল প্ল্যাটফর্মে গতিশীল এবং স্ট্যাটিক লিঙ্কিংয়ের একটি কার্যকরী জ্ঞান অনুমান করে। আপনি যদি এই ধারণাগুলির সাথে অপরিচিত হন তবে নিম্নলিখিত ডকুমেন্টেশনগুলি দেখুন:
Since this document is concerned with the types of library linkage and not the loading of non-executable resource bundles, the terms library and framework are used interchangeably.
স্ট্যাটিক লিঙ্কিং
স্ট্যাটিক্যালি লিঙ্ক করা লাইব্রেরিগুলি বিল্ড টাইমে এক্সিকিউটেবল আপনার অ্যাপ্লিকেশানে বান্ডিল করা হয়। ফলস্বরূপ, স্ট্যাটিক লাইব্রেরিতে থাকা অবজেক্ট ফাইলগুলি আপনার অ্যাপ্লিকেশনটিতে উপস্থিত থাকবে যখন এটি চালু হয় এবং ডায়নামিক লিঙ্কার দ্বারা অ্যাপ-লঞ্চ সময়ে সমাধান করার দরকার নেই। Consequently, apps using static linking will launch faster. এটি কিছুটা বৃহত্তর বাইনারি / অ্যাপ এক্সিকিউটেবলের ব্যয়ে আসে, যদিও এটি লক্ষ করা উচিত যে বৃহত্তর এক্সিকিউটেবল আকারটি বান্ডিলযুক্ত গতিশীল লাইব্রেরির অভাব দ্বারা অফসেট হবে।
You can force static linking of Firebase dependencies by explicitly specifying the linkage in your Podfile:
# cocoapods >= 1.9.0
use_frameworks! :linkage => :static
গতিশীল লিঙ্কিং
গতিশীলভাবে লিঙ্কযুক্ত গ্রন্থাগারগুলি আপনার অ্যাপ্লিকেশনটির মূল এক্সিকিউটেবল থেকে আলাদাভাবে আপনার অ্যাপ্লিকেশন বান্ডিলটিতে সংরক্ষণ করা হয় এবং এগুলি অবশ্যই ডায়নামিক লিঙ্কার দ্বারা অ্যাপ-লঞ্চ সময়ে লোড করতে হবে। Apple's frameworks are all linked dynamically to enable code-sharing between processes; similarly, you can use dynamic frameworks to share code between your app and extension targets. You cannot share dynamic frameworks between separate applications, even if they are both signed by the same developer.
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
Note that dynamic linking may increase your app's launch time, especially if your app has a lot of dependencies.