این صفحه نکتهها و عیبیابیهایی برای مشکلات خاص Unity ارائه میدهد که ممکن است هنگام استفاده از Firebase با آنها مواجه شوید.
آیا چالشهای دیگری دارید یا مشکلتان را در زیر نمیبینید؟ حتماً پرسشگان اصلی Firebase را برای پرسشگان بیشتر درباره Firebase یا محصولات خاص بررسی کنید.
مشکلی در dex تکی هنگام ساختن برنامه Android وجود دارد
هنگام ساختن برنامه Android، ممکن است با خطای ساخت مربوط به داشتن یک فایل dex مواجه شوید. اگر پروژهتان برای استفاده از سیستم ساخت Gradle پیکربندی شده باشد، پیام خطا شبیه به مورد زیر خواهد بود.
Cannot fit requested classes in a single dex file.
از فایلهای Dalvik Executable (.dex) برای نگهداری مجموعهای از تعاریف کلاس و دادههای کمکی مرتبط با آنها برای برنامههای Android (.apk) استفاده میشود. یک فایل dex تکی محدود به ارجاع به ۶۵٬۵۳۶ روش است. اگر تعداد کل روشها از همه کتابخانههای Android در پروژهتان از این حد فراتر رود، ساخت با شکست مواجه خواهد شد.
Unity در نسخه ۲۰۱۷.۲، Minification را معرفی کرد که از Proguard (یا ابزارهای دیگر در برخیاز نسخههای Unity) برای حذف کدهای استفادهنشده استفاده میکند و میتواند تعداد کل روشهای ارجاعشده در یک فایل dex را کاهش دهد. این گزینه را میتوانید در تنظیمات پخشکننده > Android > تنظیمات انتشار > کوچک کردن پیدا کنید. گزینهها ممکن است در نسخههای مختلف Unity متفاوت باشد، بنابراین به اسناد رسمی Unity مراجعه کنید.
اگر تعداد روشهای ارجاعشده همچنان از حد مجاز فراتر میرود، گزینه دیگر
فعال کردن multidex است. روشهای متعددی برای دستیابی به این هدف در Unity وجود دارد:
- اگر
Custom Gradle TemplateدرPlayer Settingsفعال است،mainTemplate.gradleرا اصلاح کنید. - اگر از Android Studio برای ساختن پروژه صادرشده استفاده میکنید،
فایل
build.gradleسطح ماژول را اصلاح کنید.
جزئیات بیشتر را میتوانید در راهنمای کاربر مولتیدکس پیدا کنید.
مشکلات هنگام ساختن برای Android با minSdkVersion 23
هنگام ساختن برای Android، اگر minSdkVersion 23 را هدف قرار دهید، ممکن است در
مرحله dexing با شکست مواجه شود، معمولاً در تکلیف Gradle «:launcher:mergeExtDexDebug»، که
در آن گفته میشود «تبدیل یکی از کتابخانههای Android ناموفق بود». این مشکل بهدلیل وجود اشکالی در ابزار dex پیشفرض در کیت توسعه نرمافزار Android است که اکثر ویرایشگرهای Unity از آن استفاده میکنند و به چند روش مختلف میتوان آن را برطرف کرد:
minSdkVersionرا روی ۲۴ تنظیم کن.- کوچکسازی Android را در تنظیمات پخشکننده > Android > تنظیمات انتشار > کوچکسازی روشن کنید
- با افزودن این مورد به فایل
settingsTemplate.gradle، نسخه دیگری از ابزار dex را مشخص کنید:
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 ناموفق باشد. درحالحاضر چند روش مختلف برای حل این مشکل وجود دارد.
از پایانه،
pod installرا مستقیماً اجرا کنید و فایل xcworkspace حاصل را باز کنید.نسخه Cocoapods را به ۱.۱۰.۲ تنزل دهید. این مشکل فقط در نسخه ۱.۱۱ و جدیدتر وجود دارد.
در
~/.bash_profileیا معادل آن،export LANG=en_US.UTF-8را اضافه کنید
نحوه بهروزرسانی نسخه کیتهای توسعه نرمافزار Firebase Unity
فرایند بهروزرسانی نسخههای کیت توسعه نرمافزار Firebase در Unity به نحوه وارد کردن اولیه آنها بستگی دارد. در اینجا دو روش جایگزین برای وارد کردن آورده شده است:
- درحال وارد کردن
.unitypackageفایل در فهرست راهنمایAssets/پروژه شما - وارد کردن بااستفاده از
مدیر بسته Unity
(UPM)
- این روش توصیهشده برای مدیریت بستهها در Unity 2018.4+ است.
- از این روش استفاده کنید تا بهروزرسانیهای نسخه آینده آسانتر شود و
فهرست راهنمای
Assets/شما تمیزتر شود.
در پروژه Unity، فقط باید از یک روش وارد کردن برای مدیریت همه بستههای Firebase استفاده کنید. از دستورالعملهای زیر نهتنها میتوان برای بهروزرسانی نسخه بستههای مجزا استفاده کرد، بلکه درصورت نیاز میتوان برای انتقال مدیریت بسته به UPM (روش وارد کردن توصیهشده) نیز از آنها استفاده کرد.