تقدّم هذه الصفحة نصائح وخطوات تحديد المشاكل وحلّها المتعلّقة بمنصّة Unity التي قد تواجهها عند استخدام Firebase.
هل لديك مشاكل أخرى أو لا تظهر مشكلتك الموضّحة أدناه؟ يُرجى الاطّلاع على الأسئلة الشائعة الرئيسية حول Firebase للحصول على المزيد من الأسئلة الشائعة حول Firebase بشكل عام أو حول منتج معيّن.
مشكلة في ملف dex واحد أثناء إنشاء تطبيق Android
أثناء إنشاء تطبيق Android، قد تواجه تعذُّرًا في الإنشاء بسبب استخدام ملف dex واحد. تبدو رسالة الخطأ مشابهة لما يلي، إذا كان مشروعك مُعدًا لاستخدام نظام إنشاء Gradle.
Cannot fit requested classes in a single dex file.
تُستخدَم ملفات Dalvik Executable (.dex
) لتضمين مجموعة من تعريفات الفئات
والبيانات الملحقة المرتبطة بها لتطبيقات Android (.apk
). يقتصر ملف dex
واحد على الإشارة إلى 65,536 طريقة. سيتعذّر إنشاء الحزمة إذا تجاوز إجمالي
عدد الطرق من جميع مكتبات Android في مشروعك هذا الحدّ.
طرحت Unity ميزة التصغير في الإصدار 2017.2، والتي تستخدِم أداة Proguard (أو أدوات أخرى في بعض إصدارات Unity) لإزالة الرموز البرمجية غير المستخدَمة، ما يمكن أن يؤدي إلى تقليل إجمالي عدد methods المُشار إليها في ملف dex واحد. يمكن العثور على الخيار في إعدادات المشغّل > Android > إعدادات النشر > تصغير حجم الملف. قد تختلف الخيارات في إصدارات مختلفة من Unity، لذا يُرجى الرجوع إلى مستندات Unityhivational.
إذا استمر عدد الطرق المُشار إليها في تجاوز الحدّ المسموح به، يمكنك
تفعيل multidex
كخيار آخر. هناك عدة طرق لتحقيق ذلك في Unity:
- إذا كان الخيار
Custom Gradle Template
ضمنPlayer Settings
مفعّلاً، عدِّلmainTemplate.gradle
. - إذا كنت تستخدم "استوديو Android" لإنشاء المشروع الذي تم تصديره، عدِّلملف
build.gradle
على مستوى الوحدة.
يمكنك الاطّلاع على مزيد من التفاصيل في دليل مستخدم حِزم multidex.
مشاكل عند إنشاء تطبيق لنظام التشغيل Android باستخدام الإصدار 23 من minSdkVersion
عند إنشاء تطبيق متوافق مع Android، إذا كنت تستهدف الإصدار 23 من minSdkVersion
، قد يتعذّر إكمال مرحلة تحويل رمز التطبيق إلى رمز قابل للتنفيذ (dex)، وعادةً ما يحدث ذلك في مهمة Gradle ":launcher:mergeExtDexDebug"، حيث سيظهر لك العنوان "تعذّر تحويل" إحدى مكتبات Android. ويعود سبب ذلك
إلى خطأ في أداة dex التلقائية في حزمة تطوير البرامج (SDK) لنظام التشغيل Android التي يستخدمها معظم
محرّري Unity، ويمكن إصلاحه بعدة طرق مختلفة:
- اضبط
minSdkVersion
على 24. - فعِّل ميزة تصغير حجم الفيديوهات على Android، فيإعدادات المشغّل > Android > إعدادات النشر > تصغير حجم الفيديوهات.
- حدِّد إصدارًا مختلفًا من أداة dex عن طريق إضافة ما يلي إلى ملف
settingsTemplate.gradle
:
buildscript {
repositories {
mavenLocal()
maven { url 'https://maven.google.com' }
mavenCentral()
}
dependencies {
classpath 'com.android.tools:r8:8.3.37'
}
}
مشاكل عند إنشاء تطبيق لنظام التشغيل iOS باستخدام Cocoapods
عند إنشاء تطبيق لنظام التشغيل iOS، قد يتعذّر تثبيت Cocoapod مع ظهور خطأ بشأن لغة التطبيق أو ترميز UTF-8. هناك حاليًا عدة طرق مختلفة لحلّ هذه المشكلة.
من نافذة Terminal، يمكنك تشغيل
pod install
مباشرةً وفتح ملف xcworkspace الناتج.الرجوع إلى إصدار Cocoapods 1.10.2 لا تظهر المشكلة إلا في الإصدار 1.11 والإصدارات الأحدث.
في
~/.bash_profile
أو ما يعادله، أضِفexport LANG=en_US.UTF-8
كيفية تحديث إصدار حِزم Firebase Unity SDK
تعتمد عملية تحديث إصدارات حِزم Firebase Unity SDK على كيفية استيرادها في البداية. في ما يلي الطريقتان البديلتان للاستيراد:
- استيراد ملفات
.unitypackage
ضمن دليلAssets/
في مشروعك - الاستيراد باستخدام
Unity Package Manager (UPM)
- هذه هي الطريقة المُقترَحة لإدارة الحِزم في الإصدار 2018.4 من Unity والإصدارات الأحدث.
- استخدِم هذه الطريقة لتسهيل تحديثات الإصدارات المستقبلية وجعل
Assets/
الدليل أكثر اتّساعًا.
في مشروع Unity، يجب استخدام طريقة استيراد واحدة فقط لإدارة كل حِزم Firebase. يمكن استخدام التعليمات أدناه ليس فقط لتعديل إصدار حزم فردية، ولكن أيضًا لنقل إدارة الحزم إلى أداة UPM (طريقة الاستيراد المقترَحة) إذا لزم الأمر.