عیب‌یابی و پرسشگان برای Unity و Firebase

این صفحه نکته‌ها و عیب‌یابی برای مشکلات مختص Unity را که ممکن است هنگام استفاده از Firebase با آن‌ها مواجه شوید ارائه می‌دهد.

چالش‌های دیگری دارید یا مشکلتان در زیر فهرست نشده است؟ برای پرسشگان اصلی Firebase یا پرسشگان خاص محصول، حتماً پرسشگان اصلی Firebase را بررسی کنید.

مشکلی در تک‌دکس هنگام ساختن برنامه Android

هنگام ساختن برنامه Android، ممکن است با خطای ساخت مربوط به داشتن یک فایل dex مواجه شوید. اگر پروژه شما برای استفاده از سیستم ساخت Gradle پیکربندی شده باشد، پیام خطا شبیه به پیام زیر است.

Cannot fit requested classes in a single dex file.

فایل‌های اجرایی Dalvik (.dex) برای نگهداری مجموعه‌ای از تعریف‌های کلاس و داده‌های کمکی مرتبط آن‌ها برای برنامه‌های Android (.apk) استفاده می‌شوند. یک فایل dex فقط می‌تواند به ۶۵۵۳۶ روش ارجاع دهد. اگر تعداد کل روش‌ها از همه کتابخانه‌های Android در پروژه شما از این حد فراتر رود، ساخت ناموفق خواهد بود.

‫Unity در نسخه 2017.2 کوچک‌سازی را معرفی کرد که از Proguard (یا ابزارهای دیگر در برخی‌از نسخه‌های Unity) برای حذف کد استفاده‌نشده استفاده می‌کند و می‌تواند تعداد کل روش‌های ارجاع‌شده در یک فایل dex را کاهش دهد. این گزینه را می‌توانید در تنظیمات پخش‌کننده > Android > تنظیمات انتشار > کوچک‌سازی پیدا کنید. گزینه‌ها ممکن است در نسخه‌های مختلف Unity متفاوت باشند، بنابراین به اسناد رسمی Unity مراجعه کنید.

اگر تعداد روش‌های ارجاع‌داده‌شده همچنان از حد مجاز فراتر رفت، گزینه دیگر این است که multidex را فعال کنید. چندین روش برای دستیابی به این هدف در Unity وجود دارد:

  • اگر Custom Gradle Template در Player Settings فعال باشد، mainTemplate.gradle را اصلاح کنید.
  • اگر از Android Studio برای ساختن پروژه صادرشده استفاده می‌کنید، فایل سطح واحد build.gradle را اصلاح کنید.

جزئیات بیشتر را می‌توانید در راهنمای کاربر multidex پیدا کنید.

مشکلات هنگام ساختن برای Android با حداقل نسخه کیت توسعه نرم‌افزار ۲۳

هنگام ساختن برای 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 (روش وارد کردن توصیه‌شده) نیز استفاده کرد.