इस पेज में Apple प्लैटफ़ॉर्म से जुड़ी खास समस्याओं के बारे में सलाह और उन्हें हल करने के बारे में बताया गया है.
जो समस्याएं Firebase का इस्तेमाल करते समय आ सकती हैं.
क्या आपके पास अन्य चुनौतियां हैं या क्या आपको नीचे दी गई अपनी समस्या नहीं दिख रही है? पैन-Firebase या प्रॉडक्ट से जुड़े अक्सर पूछे जाने वाले सवालों के लिए, Firebase के बारे में अक्सर पूछे जाने वाले मुख्य सवाल देखना न भूलें.
रिपोर्ट की गई समस्याओं और उन्हें हल करने से जुड़ी अप-टू-डेट सूची के लिए, Firebase Apple प्लैटफ़ॉर्म SDK टूल GitHub रेपो को देखें. हमारी सलाह है कि आप वहां भी अपने Firebase Apple प्लैटफ़ॉर्म SDK टूल से जुड़ी समस्याएं दर्ज करें!
Firebase में Xcode के कौनसे वर्शन काम करते हैं?
Firebase, Xcode के ज़्यादा से ज़्यादा दो मुख्य वर्शन के साथ काम करता है. इनमें Xcode के ऐसे वर्शन शामिल नहीं हैं
जो अब Apple पर काम नहीं करते. उदाहरण के लिए, मार्च 2019 से, सभी ऐप्लिकेशन के लिए Apple का कम से कम iOS 12 वर्शन होना ज़रूरी था. इसका मतलब है कि अब Xcode 9 काम नहीं करता और सिर्फ़ Xcode 10 ही इस्तेमाल किया जा सकता है.
Xcode के खास माइनर या पैच वर्शन (उदाहरण के लिए, 9.2.0 से 9.4.1) के लिए, सहायता में होने वाले बदलाव, Firebase Apple प्लैटफ़ॉर्म SDK टूल की ज़रूरतों और
डेवलपर के इस्तेमाल से जुड़े सर्वे के आधार पर तय किए जाते हैं. ये बदलाव,
Firebase Apple प्लैटफ़ॉर्म SDK टूल की जानकारी वाले दस्तावेज़ की जानकारी
और Firebase Apple प्लैटफ़ॉर्म SDK टूल के सेटअप पेज पर दिखेंगे.
यह देखने के लिए कि SDK टूल के साथ काम करने वाला Xcode का सबसे पुराना वर्शन है या नहीं, Firebase को अपने Apple प्रोजेक्ट में जोड़ें
सेक्शन में दी गई ज़रूरी शर्तें देखें.
Xcode की बीटा रिलीज़ के लिए, Firebase की सहायता "सबसे सही"
के आधार पर उपलब्ध है. डेवलपर,
GitHub पर Firebase Apple प्लैटफ़ॉर्म SDK टूल रिपॉज़िटरी में समस्याओं को ट्रैक और सबमिट कर सकते हैं.
मेरा ऐप्लिकेशन, macOS पर Keychain आइटम ऐक्सेस करने के लिए, उपयोगकर्ता को उनके पासवर्ड का प्रॉम्प्ट देता है. मैं इसका समाधान कैसे कर सकता हूँ?
Firebase डिपेंडेंसी को वर्शन 9.6.0 या इसके बाद वाले वर्शन पर अपग्रेड करें और अपने टारगेट में
[Keychain शेयर करने की सुविधा](/docs/ios/troubleshooting-faq#macos-keychain-share)
जोड़ें.
macOS पर Firebase को Keychain शेयर करने की सुविधा की ज़रूरत क्यों होती है?
Firebase SDK टूल, कीचेन का इस्तेमाल करके जानकारी स्टोर करते हैं. जैसे, FCM के लिए इस्तेमाल किया जाने वाला Firebase
इंस्टॉलेशन आईडी. Keychain के ऐक्सेस के बिना, हो सकता है कि Firebase SDK टूल
ठीक से काम न करें. macOS Keychain, अन्य प्लैटफ़ॉर्म (iOS, tvOS, macCatalyst, और watchOS) पर इस्तेमाल होने वाले iOS स्टाइल
कीचेन की तुलना में अलग तरीके से काम करता है.
macOS पर, ऐप्लिकेशन शेयर किए गए ऐसे कीचेन का इस्तेमाल करते हैं जिसमें अन्य ऐप्लिकेशन और
प्रोसेस की वजह से बदलाव हो सकता है. iOS के उलट, सैंडबॉक्स किया गया कोई कीचेन नहीं है जिसका ऐक्सेस ऐप्लिकेशन के पास हो. इसलिए, जब Mac ऐप्लिकेशन कीचेन के साथ इंटरैक्ट करता है, तो सिस्टम
उपयोगकर्ता को ऐक्सेस का अनुरोध करता है. ऐसा इसलिए, क्योंकि हो सकता है कि Mac ऐप्लिकेशन ऐसे कीचेन आइटम में बदलाव कर रहा हो
जिसे उसने बनाया ही नहीं है. इस अंतर को ठीक करने के लिए, Firebase
kSecUseDataProtectionKeychain
कुंजी से कीचेन पर क्वेरी करता है. इससे
ऐप्लिकेशन को कीचेन ऐक्सेस वाले किसी ऐसे आइटम के बारे में क्वेरी करने के लिए कहा जाता है जो कीचेन ऐक्सेस ग्रुप का हिस्सा है.
(दूसरे प्लैटफ़ॉर्म पर यह डिफ़ॉल्ट तरीका है). कीचेन शेयर करने की सुविधा
इसलिए ज़रूरी है, क्योंकि ऐप्लिकेशन को एक ऐसे ऐक्सेस ग्रुप को सिंथेसाइज़ करना होता है
जिसे उसके टारगेट के बीच शेयर किया जा सके. इस तरह ऐप्लिकेशन को ऐक्सेस ग्रुप में कीचेन आइटम को
अलग से ऐक्सेस करने की अनुमति दी जाती है.
ज़्यादा जानकारी के लिए, Apple का
Keychain दस्तावेज़
देखें.
Xcode के 13 और इसके बाद के वर्शन में, मेरे UIKit ऐप्लिकेशन
वे कुछ यूआरएल क्यों नहीं खोल पा रहे हैं जिन्हें मैंने अपनी Info.plist में
रजिस्टर किया है?
Apple ने Info.plist
फ़ाइलों में 50 LSApplicationQueriesSchemes
एंट्री की सीमा तय की है. Apple ने 2015 में LSApplicationQueriesSchemes
को लॉन्च किया, ताकि हर ऐप्लिकेशन की यूआरएल क्वेरी की संख्या को सीमित किया जा सके. Xcode 13 के रिलीज़ होने के बाद, ये सीमाएं लागू होती हैं.
वहीं, Xcode 12 और उससे पहले के वर्शन में, स्कीम की संख्या के लिए कोई तय सीमा नहीं थी.
Firebase से पुष्टि करने और Firebase डाइनैमिक लिंक जैसे कुछ Firebase प्रॉडक्ट को आपके ऐप्लिकेशन पर रीडायरेक्ट करने के लिए, कस्टम यूआरएल स्कीम का इस्तेमाल करने की ज़रूरत होती है. ये यूआरएल, छोटे और एक जैसे यूआरएल स्कीम के मुताबिक होते हैं. इन्हें 50 लिंक स्कीम की सीमा में खास तौर पर शामिल नहीं किया जाना चाहिए.
ध्यान दें कि जो ऐप्लिकेशन 50
से ज़्यादा
LSApplicationQueriesSchemes
से ज़्यादा रजिस्टर करते रहेंगे, उनके लिए कुछ स्कीम
को अनदेखा कर दिया जाएगा. हो सकता है कि ऐप्लिकेशन कुछ डीपलिंक को एक्ज़ीक्यूट न कर पाए. यह इस बात पर निर्भर करता है कि उन्हें किस क्रम में जोड़ा गया है.