تقدم هذه الصفحة نصائح واستكشاف الأخطاء وإصلاحها للمشكلات الخاصة بنظام Apple الأساسي التي قد تواجهها عند استخدام Firebase.
هل لديك تحديات أخرى أو لا ترى مشكلتك موضحة أدناه؟ تأكد من مراجعة الأسئلة الشائعة الرئيسية حول Firebase لمزيد من الأسئلة الشائعة حول Firebase أو الأسئلة الشائعة الخاصة بالمنتج.
يمكنك أيضًا التحقق من منصات Firebase Apple SDK GitHub repo للحصول على قائمة محدثة بالمشكلات المبلغ عنها واستكشاف الأخطاء وإصلاحها. نحن نشجعك على إرسال المشكلات المتعلقة بحزمة SDK لأنظمة Firebase Apple الخاصة بك أيضًا!
ما إصدارات Xcode التي يدعمها Firebase؟
يدعم Firebase ما يصل إلى إصدارين رئيسيين من Xcode ، ولا يشمل ذلك إصدارات Xcode التي لم تعد Apple تدعمها. على سبيل المثال ، اعتبارًا من مارس 2019 ، طلبت Apple إصدار iOS 12 على الأقل على جميع التطبيقات ، مما يعني أنه تم إسقاط دعم Xcode 9 وكان Xcode 10 هو الإصدار الرئيسي الوحيد المدعوم.
يتم تحديد التغييرات لدعم إصدارات ثانوية معينة أو إصدارات التصحيح من Xcode (على سبيل المثال ، 9.2.0 إلى 9.4.1) بناءً على احتياجات منصات Firebase Apple SDK واستطلاع استخدام المطور. تنعكس هذه التغييرات في ملاحظات إصدار SDK لأنظمة Firebase Apple الأساسية وفي صفحة إعداد SDK لأنظمة Firebase Apple .
لمعرفة الحد الأدنى من إصدار Xcode الذي تدعمه SDK ، تحقق من المتطلبات المدرجة في إضافة Firebase إلى مشروع Apple الخاص بك .
يتوفر دعم Firebase للإصدارات التجريبية من Xcode على أساس "أفضل جهد". يمكن للمطورين تتبع المشكلات وإرسالها في مستودع SDK لأنظمة Firebase Apple على GitHub .
يطالب تطبيقي المستخدم بكلمة مروره للوصول إلى عناصر Keychain على macOS. كيف يمكنني حل هذه المشكلة؟
قم بترقية تبعية Firebase إلى الإصدار 9.6.0 أو إصدار أحدث وأضف [إمكانية مشاركة Keychain] (/ docs / ios /routh-faq # macos-keychain-sharing) إلى هدفك.
لماذا يتطلب Firebase إمكانية مشاركة Keychain على macOS؟
تستخدم حزم Firebase SDK سلسلة المفاتيح لتخزين معلومات مثل معرّف تثبيت Firebase المستخدم في FCM. بدون الوصول إلى Keychain ، قد لا تعمل مجموعات Firebase SDK بشكل صحيح. تعمل سلسلة مفاتيح macOS بشكل مختلف عن سلسلة المفاتيح على غرار iOS المستخدمة في الأنظمة الأساسية الأخرى (iOS و tvOS و macCatalyst و watchOS).
في نظام macOS ، تستخدم التطبيقات سلسلة مفاتيح مشتركة يمكن تعديلها بواسطة تطبيقات وعمليات أخرى. على عكس iOS ، لا توجد سلسلة مفاتيح ذات وضع الحماية يمكن للتطبيق الوصول إليها ضمنًا. لذلك ، عندما يتفاعل تطبيق Mac مع keychain ، يطالب النظام المستخدم بالوصول لأن تطبيق Mac قد يعدل عنصر keychain لم يقم بإنشائه. لمعالجة هذا التناقض ، يستعلم Firebase عن keychain باستخدام مفتاح kSecUseDataProtectionKeychain
، الذي يخبر التطبيق بالاستعلام عن عنصر سلسلة مفاتيح يمثل جزءًا من مجموعة الوصول إلى سلسلة المفاتيح (هذا هو السلوك الافتراضي على الأنظمة الأساسية الأخرى). تعد إمكانية مشاركة Keychain مطلوبة لأن التطبيق يحتاج إليها لتجميع مجموعة وصول يمكن مشاركتها بين أهدافها ، وبالتالي إعطاء الإذن للتطبيق للوصول بحرية إلى عناصر سلسلة المفاتيح في مجموعة الوصول.
لمزيد من المعلومات ، راجع وثائق Apple's Keychain .
في إصدارات Xcode 13 والإصدارات الأحدث ، لماذا لا تفتح تطبيقات UIKit الخاصة بي بعض عناوين URL التي قمت بتسجيلها
في Info.plist الخاص بي؟
قدمت Apple حدًا يبلغ 50 إدخالًا لـ LSApplicationQueriesSchemes
في ملفات Info.plist
. في عام 2015 ، قدمت Apple LSApplicationQueriesSchemes
للحد من عدد استعلامات URL التي يمكن لكل تطبيق إجراؤها. مع إصدار Xcode 13 ، يتم فرض هذه الحدود ، بينما في Xcode 12 وما قبله لم يكن هناك حد فعال لعدد المخططات.
تتطلب بعض منتجات Firebase ، مثل مصادقة Firebase و Firebase Dynamic Links ، استخدام مخططات عناوين URL مخصصة لإعادة التوجيه إلى تطبيقك. تتوافق عناوين URL هذه مع مخطط URL موجز ومتسق لا يجب أن يتم احتسابه بشكل كبير مقابل حد مخطط الارتباط البالغ 50.
لاحظ أنه بالنسبة للتطبيقات التي تستمر في تسجيل أكثر من 50 LSApplicationQueriesSchemes
، سيتم تجاهل بعض المخططات بصمت. قد يتعذر على التطبيق تنفيذ بعض الارتباطات العميقة ، بناءً على ترتيب إضافتها.