تصحيح أخطاء عملية إنشاء اللعبة وتثبيتها وتشغيلها

مقدمة

في ما يلي دليل لتصحيح أخطاء عملية التجميع والإنشاء لألعاب Unity باستخدام حزمة تطوير البرامج (SDK) من Firebase لنظام Unity. ويوضّح كيفية التحقيق في العديد من المشاكل الأكثر شيوعًا التي قد تواجهها أثناء إعداد لعبتك وإنشائها لمنصة جديدة أو بعد إجراء تحديث، وكيفية حلّها. وهي مرتّبة حسب وقت حدوثها المحتمل في العملية. راجِعها بالترتيب واتّخِذ الإجراءات اللازمة لحلّ كلّ منها.

بالإضافة إلى هذا المستند، يمكنك الرجوع إلى الأسئلة الشائعة حول Firebase لـ Unity للحصول على مزيد من المعلومات.

مشاكل في تجميع "وضع التشغيل"

يمكن أن يحدث النوع الأول من مشاكل الإنشاء أثناء الاختبار في المحرّر قبل محاولة بدء إنشاء إصدار على الجهاز الجوّال. يتعلّق هذا القسم بجميع أخطاء Firebase التي تحدث قبل "وضع التشغيل" وأثناءه.

عندما يبدأ Unity أو يرصد تغييرات في التبعيات أو الرموز أو الأصول الأخرى، سيحاول إعادة إنشاء المشروع. إذا تعذّر تجميع المشروع في ذلك الوقت، سيسجّل المحرّر أخطاء التجميع في وحدة التحكّم، وإذا حاولت الدخول إلى "وضع التشغيل"، ستتلقّى نافذة منبثقة تحتوي على رسالة خطأ في علامة التبويب المشهد في Unity، وسيظهر فيها All compiler errors have to be fixed before you can enter playmode!.

أنواع وفئات وطُرق وعناصر غير متوفّرة

تحدث العديد من المشاكل في Firebase بسبب عدم قدرة المحرِّر والمترجم على العثور على الأنواع والفئات والطرق والعناصر اللازمة. تشمل الأعراض الشائعة لهذا النوع من المشاكل ما يلي:

The type or namespace name ‘<CLASS OR NAMESPACE NAME>' could not be found. Are you missing a using directive or an assembly reference?

The type or namespace name <TYPE OR NAMESPACE NAME> does not exist in the namespace ‘Firebase<.OPTIONAL NESTED NAMESPACE NAME PATH>' (are you missing an assembly reference?)

‘<CLASS NAME>' does not contain a definition for ‘<MEMBER VARIABLE OR METHOD NAME>'

خطوات الحلّ:
  1. عند استخدام فئات أو طرق Firebase في الرمز البرمجي، تأكَّد من إتاحتها من خلال توفير توجيهات using الصحيحة لمنتجات Firebase المطلوبة.

    1. أمثلة من MechaHamster: Level Up With Firebase Edition:
      1. using Firebase.RemoteConfig;
      2. using Firebase.Crashlytics;
  2. تأكَّد من استيراد حِزم Firebase المناسبة:

    1. لاستيراد الحِزم المناسبة، يمكنك إجراء أحد الإجراءَين التاليَين:
      1. أضِف حزمة Firebase Unity SDK كـ .unitypackages أو
      2. ابحث عن أحد الحلول البديلة في خيارات تثبيت Unity الإضافية ونفِّذه.
    2. تأكَّد من أنّ كل منتج من منتجات Firebase في مشروعك وEDM4U:
      • أن يكونا بالإصدار نفسه
      • تم تثبيتها إما كحِزم .unitypackage فقط أو فقط من خلال Unity Package Manager.
  3. إذا كنت قد استوردت حزمة Firebase Unity SDK قبل الإصدار "10.0.0" كملفات .unitypackage، سيحتوي أرشيف zip الخاص بحزمة Firebase Unity SDK على حِزم متوافقة مع كلّ من .NET 3.x و .NET 4.x. تأكَّد من أنّك أدرجت مستوى .NET Framework المتوافق فقط في مشروعك:

    1. تتم مناقشة التوافق بين إصدارات Unity Editor ومستويات .NET Frameworks في مقالة إضافة Firebase إلى مشروع Unity.
    2. إذا استوردت حِزم Firebase عن طريق الخطأ في مستوى غير صحيح من .NET Framework أو كنت بحاجة إلى التبديل من استخدام .unitypackage إلى أحد خيارات تثبيت Unity الإضافية، فإنّ أفضل طريقة هي إزالة كل حِزمة Firebase من خلال الطرق المذكورة في قسم نقل البيانات هذا ثم إعادة استيراد جميع حِزم Firebase مرة أخرى.
  4. تأكَّد من أنّ المحرّر يعيد إنشاء مشروعك وأنّ محاولاتك للتشغيل تعكس أحدث حالة لمشروعك:

    1. يتم ضبط أداة تعديل Unity تلقائيًا على إعادة الإنشاء كلما تم رصد تغييرات في مواد العرض أو الإعدادات.
    2. من المحتمل أن تكون هذه الوظيفة غير مفعّلة وأنّ "محرّر Unity" مضبوط على إعادة التحميل/التجميع يدويًا. تحقَّق من ذلك وحاوِل إعادة التحميل يدويًا إذا كان هذا هو السبب.

أخطاء وقت التشغيل في "وضع التشغيل"

إذا بدأت لعبتك، ولكن واجهت مشاكل في Firebase أثناء تشغيلها، جرِّب ما يلي:

تأكَّد من الموافقة على حِزم Firebase في "الأمان والخصوصية" على نظام التشغيل Mac

إذا ظهرت لك رسالة عند بدء تشغيل لعبتك في المحرّر على نظام التشغيل Mac OS، مفادها "لا يمكن فتح FirebaseCppApp-<version>.bundle لأنّه لا يمكن التحقّق من هوية المطوّر"، عليك الموافقة على ملف الحزمة المحدّد هذا في قائمة "الأمان والخصوصية " على جهاز Mac.

لإجراء ذلك، انقر على رمز Apple > إعدادات النظام المفضّلة > الأمان والخصوصية.

في قائمة الأمان، في منتصف الصفحة تقريبًا، يظهر قسم بعنوان "تم حظر استخدام "FirebaseCppApp-<version>.bundle" لأنّه ليس من مطوّر معرَّف".

انقر على الزر السماح على أي حال (Allow Anyway).