تحديد المشاكل وحلّها والأسئلة الشائعة حول أنظمة Apple الأساسية وFirebase

تقدّم هذه الصفحة نصائح وخطوات تحديد المشاكل وحلّها المتعلّقة بمنصّة Apple التي قد تواجهها عند استخدام Firebase.

هل لديك مشاكل أخرى أو لا تظهر مشكلتك الموضّحة أدناه؟ يُرجى الاطّلاع على الأسئلة الشائعة الرئيسية حول Firebase للحصول على المزيد من الأسئلة الشائعة حول Firebase بشكل عام أو حول منتج معيّن.

يمكنك أيضًا الاطّلاع على مستودع GitHub لحزمة تطوير البرامج (SDK) لمنصّات Apple من Firebase للحصول على قائمة محدّثة بالمشاكل التي تم الإبلاغ عنها وتحديد المشاكل وحلّها. ننصحك بإرسال مشاكل حزمة تطوير البرامج (SDK) لمنصّات Apple من Firebase هناك أيضًا.

تتوافق Firebase مع إصدارَين رئيسيَّين كحدّ أقصى من Xcode، باستثناء إصدارات Xcode التي لم تعُد متوافقة مع Apple. على سبيل المثال، اعتبارًا من آذار (مارس) 2019، فرضت Apple استخدام الإصدار 12 من نظام التشغيل iOS على الأقل في جميع التطبيقات، ما يعني أنّه تم إيقاف استخدام الإصدار 9 من Xcode وأنّ الإصدار 10 من Xcode هو الإصدار الرئيسي الوحيد المتوافق.

يتم تحديد التغييرات في التوافق مع إصدارات ثانوية أو إصدارات تصحيحية معيّنة من Xcode (على سبيل المثال، من 9.2.0 إلى 9.4.1) استنادًا إلى احتياجات حزمة تطوير البرامج (SDK) لمنصّات Apple من Firebase واستطلاع عن استخدام المطوّرين. تظهر هذه التغييرات في ملاحظات إصدار حزمة تطوير البرامج (SDK) لمنصّات Apple من Firebase وفي صفحة إعداد حزمة تطوير البرامج (SDK) لمنصّات Apple من Firebase.

للاطّلاع على الحد الأدنى لإصدار Xcode المتوافق مع حزمة تطوير البرامج (SDK)، راجِع المتطلبات الواردة في مقالة إضافة Firebase إلى مشروعك على Apple.

يتوفّر دعم Firebase للإصدارات التجريبية من Xcode على أساس "بذل أقصى جهد" . يمكن للمطوّرين تتبُّع المشاكل وإرسالها في مستودع حِزم تطوير البرامج (SDK) لمنصّات Apple من Firebase على GitHub.

عليك ترقية الاعتماد على Firebase إلى الإصدار 9.6.0 أو إصدار أحدث وإضافة [إمكانية مشاركة سلسلة المفاتيح](/docs/ios/troubleshooting-faq#macos-keychain-sharing) إلى الجهاز المستهدَف.

تستخدم حِزم Firebase SDK سلسلة المفاتيح لتخزين معلومات مثل معرّف تثبيت Firebase المستخدَم في ميزة "الرسائل من Google". بدون إذن الوصول إلى سلسلة المفاتيح، قد لا تعمل حِزم تطوير البرامج (SDK) من Firebase بشكل صحيح. تختلف سلسلة مفاتيح macOS عن سلسلة مفاتيح iOS التي يتم استخدامها على الأنظمة الأساسية الأخرى (iOS وtvOS وmacCatalyst وwatchOS).

على نظام التشغيل macOS، تستخدم التطبيقات سلسلة مفاتيح مشترَكة قد تعدّلها التطبيقات والعمليات الأخرى. وعلى عكس نظام التشغيل iOS، لا يتوفّر سلسلة مفاتيح في مساحة مغلقة يمكن للتطبيق الوصول إليها بشكل ضمني. لذلك، عندما يتفاعل تطبيق Mac مع سلسلة المفاتيح، يطلب النظام من المستخدم منح الإذن بالوصول لأنّ تطبيق Mac قد يعدّل عنصرًا في سلسلة المفاتيح لم ينشئه. لحلّ هذا التناقض، تُجري Firebase طلب بحث في ملف تعريف أمان keychain باستخدام المفتاح kSecUseDataProtectionKeychain، ما يطلب من التطبيق طلب بحث في عنصر ملف تعريف أمان keychain الذي يُعدّ جزءًا من مجموعة وصول إلى ملف تعريف أمان keychain (هذا هو السلوك التلقائي على الأنظمة الأساسية الأخرى). يجب توفُّر ميزة "مشاركة سلسلة المفاتيح" لأنّ التطبيق يحتاج إليها لإنشاء مجموعة وصول يمكن مشاركتها بين استهدافاته، ما يمنح التطبيق الإذن بالوصول بحرية إلى عناصر سلسلة المفاتيح في مجموعة الوصول.

لمزيد من المعلومات، يُرجى الاطّلاع على مستندات سلسلة المفاتيح الخاصة بـ Apple .

وضعت Apple حدًا أقصى يبلغ 50 إدخالًا من النوع LSApplicationQueriesSchemes في Info.plist ملف. في عام 2015، طرحت Apple LSApplicationQueriesSchemes لتقييد عدد طلبات البحث عن عناوين URL التي يمكن أن يقدّمها كل تطبيق. مع إصدار Xcode 13، يتم فرض هذه الحدود، في حين لم يكن هناك حدّ فعّال لعدد المخططات في Xcode 12 والإصدارات الأقدم.

تتطلّب بعض منتجات Firebase، مثل Firebase Authentication وFirebase Dynamic Links، استخدام مخطّطات عناوين URL مخصّصة لإعادة التوجيه إلى تطبيقك. تتوافق عناوين URL هذه مع مخطّط عنوان URL موجز ومتّسق لا يُحتسَب بشكل كبير ضمن الحدّ الأقصى المسموح به لمخطّط الروابط الذي يبلغ 50 مخطّطًا.

يُرجى العلم أنّه بالنسبة إلى التطبيقات التي تستمر في تسجيل أكثر من 50 LSApplicationQueriesSchemes، سيتم تجاهل بعض المخططات بدون إشعار. قد يتعذّر على التطبيق تنفيذ روابط لصفحات معيّنة، وذلك حسب ترتيب إضافتها.