Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

פתרון בעיות ושאלות נפוצות עבור Unity ו- Firebase

דף זה מציע טיפים ופתרון בעיות בנושאים ספציפיים לאחדות שבהם אתה עלול להיתקל בעת השימוש ב- Firebase.

יש לך אתגרים אחרים או שאינך רואה את הבעיה שלך המתוארת למטה? הקפד לבדוק את השאלות הנפוצות העיקריות על Firebase לקבלת שאלות נפוצות יותר על Pan-Firebase או על מוצרים ספציפיים.

תאימות .NET בעת שימוש ב- Unity 2017.x ואילך

Firebase תומך ב- .NET 4.x כאופציה ניסיונית לבנות ב- Unity 2017 ואילך. תוספי Firebase משתמשים ברכיבים של SDK Parse כדי לספק כמה מחלקות .NET 4.x בגרסאות קודמות של .NET.

לכן, Firebase Unity SDK גרסה 5.4.0 ואילך מספקים תוספים התואמים ל- .NET 3.x או .NET 4.x dotnet3 dotnet4 ו- dotnet4 של SDK Firebase Unity.

אם אתה מייבא תוסף Firebase שאינו תואם לגירסת .NET המופעלת בפרויקט שלך, תראה שגיאות קומפילציה מכמה סוגים במסגרת .NET המיושמים על ידי SDK Parse.

כדי לפתור את שגיאת האוסף, אם אתה משתמש ב- .NET 3.x:

  1. הסר או השבת את קבצי ה- DLL הבאים עבור כל הפלטפורמות:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll
  2. הפעל את קבצי ה- DLL הבאים עבור כל הפלטפורמות:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll

כדי לפתור את שגיאת האוסף, אם אתה משתמש ב- .NET 4.x:

  1. הסר או השבת את קבצי ה- DLL הבאים עבור כל הפלטפורמות:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll
  2. הפעל את קבצי ה- DLL הבאים עבור כל הפלטפורמות:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll

אם אתה מייבא תוסף Firebase נוסף:

  • בפרויקט Unity שלך, נווט אל נכסים > Resolver Services Services > Handler Version > עדכון כדי לאפשר את קבצי ה- DLL הנכונים עבור הפרויקט שלך.

Unity 2017.1 אוסף IL2CPP בפרויקטים של .NET 4.x

Firebase תומך ב- .NET 4.x כאופציה ניסיונית לבנות ב- Unity 2017 ואילך. תוספי Firebase משתמשים ברכיבים של SDK Parse כדי לספק כמה מחלקות .NET 4.x בגרסאות קודמות של .NET.

לכן, Firebase Unity SDK גרסה 5.4.0 ואילך מספקת קבצי DLL להעברת סוג שמעבירים סוגי ניתוח (למשל, יישום ניתוח של System.Threading.Tasks.Task ) למסגרת .NET. למרבה הצער, IL2CPP (משדר שממיר C # ל- C ++) שנשלח ב- Unity 2017.1.x אינו מעבד כהלכה קבצי DLL להעברת סוגים, מה שגורם לשגיאות בנייה הדומות לדברים הבאים:

Fatal error in Unity CIL Linker Mono.Cecil.ResolutionException: Failed to
resolve System.Threading.Tasks.TaskCompletionSource`1<T>

נכון לעכשיו אין פיתרון לעקיפת שגיאות בנייה של .NET 4.x IL2CPP ב- Unity 2017.1, לכן עליך לשדרג ל- Unity 2017.2 ואילך כדי להשתמש ב- .NET 4.x בפרויקטים שהורכבו עם IL2CPP.

רשת אחדות 2017.2

מסד נתונים בזמן אמת של Firebase יוצר חיבורי רשת TLS באמצעות ערימת הרשת .NET. פונקציונליות TLS נשברת ב- Unity 2017.2 בעת שימוש ב- .NET 4.6 מה שגורם לפלאגין Realtime Database להיכשל בעורכי ובשולחן העבודה.

אין דרך לעקיפת הבעיה, לכן עליך להשתמש בגרסה אחרת של Unity, למשל גרסה 2017.1 או 2017.3.

חסר קובץ תצורת תצורה של Android ב- Unity 2020

על מנת לתמוך בגרסאות של Unity שאינן יכולות להתאים אישית את בניית Gradle, הכלי של עורך Firebase מייצר Assets/Plugins/Android/Firebase/res/values/google-services.xml כמשאב אנדרואיד שיש לארוז לתוך אנדרואיד לבנות, כך ש- SDK של Firebase יוכל להשתמש בו לאתחול מופע ברירת המחדל של FirebaseApp.

ב- Unity 2020, כל משאבי Android חייבים להיות בספריות עם סיומת .androidlib . אם הפרויקט שלך משתמש ב- SDK של Firebase המייצר ספריית Assets/Plugins/Android/Firebase , שנה את שמו לשם Assets/Plugins/Android/Firebase.androidlib . ודא שהוא מכיל AndroidManifest.xml , project.properties ו- res/values/google-services.xml .

בעיה עם דקס יחיד בעת בניית אפליקציית Android

בעת בניית אפליקציית Android, אתה עלול להיתקל בכישלון לבנות הקשור לקובץ dex יחיד. הודעת השגיאה נראית דומה להודעות הבאות, אם הפרויקט שלך מוגדר לשימוש במערכת build Gradle.

Cannot fit requested classes in a single dex file.

קבצי ההפעלה של Dalvik ( .dex ) משמשים להחזקת קבוצה של הגדרות מחלקה .dex ליישומי Android ( .apk ). קובץ dex יחיד מוגבל להתייחסות ל 65,536 שיטות. הבנייה תיכשל אם המספר הכולל של השיטות מכל ספריות Android בפרויקט שלך חורג ממגבלה זו.

Unity הציגה את Minification בשנת 2017.2, המשתמשת ב- Proguard (או בכלים אחרים בגרסאות מסוימות של Unity) כדי לפשט קוד שאינו בשימוש, מה שיכול להפחית את המספר הכולל של שיטות הפניה בקובץ dex יחיד. ניתן למצוא את האפשרות בהגדרות הנגן> אנדרואיד> הגדרות פרסום> צמצום . האפשרויות עשויות להיות שונות בגרסאות שונות של Unity ולכן עיין בתיעוד הרשמי של Unity.

אם מספר השיטות multidex עדיין חורג מהמגבלה, אפשרות אחרת היא להפעיל multidex . ישנן מספר דרכים להשיג זאת באחדות:

  • אם מופעלת Custom Gradle Template תחת Player Settings , שנה mainTemplate.gradle .
  • אם אתה משתמש ב- Android Studio לבניית הפרויקט המיוצא, build.gradle קובץ build.gradle ברמת build.gradle .

ניתן למצוא פרטים נוספים במדריך למשתמש של multidex .