Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Firebase निर्भरता को स्थिर या गतिशील रूप से लिंक करें

CocoaPods 1.9.0 और Firebase 7 से शुरू करके, आप चुन सकते हैं कि आपकी Firebase निर्भरताएँ स्थिर या गतिशील फ़्रेमवर्क के रूप में बनाई गई हैं या नहीं। जब तक आपको कुछ गतिशील पुस्तकालय व्यवहारों की आवश्यकता न हो, हम स्थिर ढांचे का उपयोग करने की सलाह देते हैं।

ध्यान दें कि GitHub के बाहर विकसित पुस्तकालयों को केवल CocoaPods 1.9.0 और बाद के संस्करण के साथ भी स्थिर रूप से जोड़ा जा सकता है। वर्तमान में, इस लाइब्रेरी सूची में AdMob, Analytics, Firebase ML और प्रदर्शन निगरानी शामिल हैं। ज़िप फ़ाइल, स्विफ्ट पैकेज मैनेजर और कार्थेज सहित अन्य सभी वितरण चैनल केवल स्थिर रूप से जुड़े पुस्तकालय प्रदान करते हैं।

यह दस्तावेज़ Apple प्लेटफ़ॉर्म पर डायनेमिक और स्टैटिक लिंकिंग का कार्यसाधक ज्ञान मानता है। यदि आप इन अवधारणाओं से अपरिचित हैं, तो निम्नलिखित दस्तावेज़ देखें:

चूंकि यह दस्तावेज़ लाइब्रेरी लिंकेज और नहीं गैर निष्पादन योग्य संसाधन बंडलों की लोडिंग के प्रकार के साथ संबंध है, मामले पुस्तकालय और ढांचे दूसरे के स्थान पर किया जाता है।

स्टेटिक लिंकिंग

स्थिर रूप से जुड़े पुस्तकालयों को बिल्ड समय पर आपके एप्लिकेशन निष्पादन योग्य में बंडल किया जाता है। परिणामस्वरूप, स्टैटिक लाइब्रेरी में ऑब्जेक्ट फ़ाइलें आपके ऐप के लॉन्च होने पर मौजूद होंगी और डायनेमिक लिंकर द्वारा ऐप-लॉन्च के समय इसे हल करने की आवश्यकता नहीं होगी। नतीजतन, स्टेटिक लिंकिंग का उपयोग करने वाले ऐप्स तेजी से लॉन्च होंगे। यह थोड़ा बड़ा बाइनरी / ऐप निष्पादन योग्य की कीमत पर आता है, हालांकि यह ध्यान दिया जाना चाहिए कि बड़े निष्पादन योग्य आकार को बंडल गतिशील पुस्तकालयों की कमी से ऑफसेट किया जाएगा।

आप अपने पॉडफाइल में लिंकेज को स्पष्ट रूप से निर्दिष्ट करके फायरबेस निर्भरता के स्थिर लिंकिंग को बाध्य कर सकते हैं:

# cocoapods >= 1.9.0
use_frameworks! :linkage => :static

गतिशील लिंकिंग

डायनामिक रूप से लिंक की गई लाइब्रेरी आपके ऐप बंडल में आपके ऐप के मुख्य निष्पादन योग्य से अलग संग्रहीत की जाती हैं, और उन्हें डायनेमिक लिंकर द्वारा ऐप-लॉन्च के समय लोड किया जाना चाहिए। प्रक्रियाओं के बीच कोड-साझाकरण को सक्षम करने के लिए Apple के सभी ढांचे गतिशील रूप से जुड़े हुए हैं; इसी तरह, आप अपने ऐप्लिकेशन और एक्सटेंशन लक्ष्यों के बीच कोड साझा करने के लिए डायनामिक फ़्रेमवर्क का उपयोग कर सकते हैं। आप अलग-अलग एप्लिकेशन के बीच डायनेमिक फ्रेमवर्क साझा नहीं कर सकते, भले ही वे दोनों एक ही डेवलपर द्वारा हस्ताक्षरित हों।

यदि आप फ़ायरबेस का उपयोग डायनेमिक फ्रेमवर्क लक्ष्य की निर्भरता के रूप में करना चाहते हैं, तो आपको फ़ायरबेस को गतिशील रूप से लिंक करने की भी आवश्यकता है; अन्यथा आप में चलाने जाएगा डुप्लिकेट वर्ग परिभाषाओं को अपने ऐप्लिकेशन के क्रम में। गतिशील जोड़ने के साथ डिफ़ॉल्ट व्यवहार है use_frameworks! , लेकिन आप अभी भी अपने पॉडफाइल में डायनामिक लिंकेज को स्पष्ट रूप से निर्दिष्ट कर सकते हैं:

# cocoapods >= 1.9.0
use_frameworks! :linkage => :dynamic

ध्यान दें कि डायनेमिक लिंकिंग आपके ऐप के लॉन्च समय को बढ़ा सकती है, खासकर अगर आपके ऐप में बहुत अधिक निर्भरताएं हैं।