Unity ও Firebase-এর জন্য সমস্যার সমাধান ও প্রায়শই জিজ্ঞাসিত প্রশ্ন

Firebase ব্যবহার করার সময় Unity-নির্দিষ্ট সমস্যা সমাধানের জন্য এই পৃষ্ঠায় পরামর্শ ও সমস্যার সমাধানকরণ সংক্রান্ত তথ্য দেওয়া আছে।

অন্য কোনও সমস্যা আছে বা নিচে আপনার সমস্যা উল্লেখ করা নেই? আরও প্যান-Firebase বা প্রোডাক্ট-নির্দিষ্ট FAQ-এর জন্য প্রধান Firebase FAQ চেক করতে ভুলবেন না।

Android অ্যাপ তৈরি করার সময় সিঙ্গেল dex সংক্রান্ত সমস্যা

Android অ্যাপ তৈরি করার সময়, একটি dex ফাইল থাকার কারণে বিল্ড ব্যর্থ হওয়ার সমস্যার সম্মুখীন হতে পারেন। আপনার প্রোজেক্ট Gradle বিল্ড সিস্টেম ব্যবহার করার জন্য কনফিগার করা থাকলে, ত্রুটি মেসেজটি নিম্নলিখিত মেসেজের মতো দেখাবে।

Cannot fit requested classes in a single dex file.

Dalvik Executable (.dex) ফাইলগুলি Android অ্যাপ্লিকেশনের (.apk) জন্য ক্লাস ডেফিনেশনের একটি সেট এবং তাদের সাথে সম্পর্কিত অ্যাডজাঙ্কট ডেটা ধরে রাখতে ব্যবহৃত হয়। একটি একক ডেক্স ফাইল ৬৫,৫৩৬টি পদ্ধতির রেফারেন্সের মধ্যে সীমাবদ্ধ। আপনার প্রোজেক্টের সব Android লাইব্রেরি থেকে মোট পদ্ধতির সংখ্যা এই সীমা অতিক্রম করলে, বিল্ড করা যাবে না।

Unity ২০১৭.২ ভার্সনে মিনিফিকেশন ফিচার নিয়ে এসেছে, যা Proguard (বা Unity-র কিছু ভার্সনে অন্যান্য টুল) ব্যবহার করে অব্যবহৃত কোড বাদ দেয়, যার ফলে একটি dex ফাইলে রেফারেন্স করা পদ্ধতির মোট সংখ্যা কমে যেতে পারে। এই বিকল্পটি প্লেয়ার সেটিংস > Android > প্রকাশনা সেটিংস > ছোট করুন বিকল্পে পাওয়া যাবে। Unity-এর বিভিন্ন ভার্সনে বিকল্পগুলি আলাদা হতে পারে, তাই অফিসিয়াল Unity ডকুমেন্টেশন দেখুন।

রেফারেন্স করা পদ্ধতির সংখ্যা এখনও সীমা অতিক্রম করলে, আরেকটি বিকল্প হল multidex চালু করা। Unity-তে এটি করার একাধিক উপায় আছে:

  • Player Settings-এর অধীনে Custom Gradle Template চালু থাকলে, mainTemplate.gradle পরিবর্তন করুন।
  • এক্সপোর্ট করা প্রোজেক্ট তৈরি করতে Android Studio ব্যবহার করলে, মডিউল-লেভেল build.gradle ফাইল পরিবর্তন করুন।

মাল্টিডেক্স ব্যবহারকারীর নির্দেশিকা থেকে আরও তথ্য পাওয়া যাবে।

minSdkVersion 23 সহ Android-এর জন্য তৈরি করার সময় সমস্যা

Android-এর জন্য তৈরি করার সময়, আপনি minSdkVersion ২৩ টার্গেট করলে, এটি ডেক্সিং ধাপে ব্যর্থ হতে পারে, সাধারণত Gradle টাস্ক ':launcher:mergeExtDexDebug'-এ, যেখানে এটি বলবে যে Android লাইব্রেরির মধ্যে একটি "ট্রান্সফর্ম করতে ব্যর্থ হয়েছে"। Android SDK-এর ডিফল্ট dex টুলে একটি বাগ থাকার কারণে এটি হয়, যা বেশিরভাগ 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'
  }
}

Cocoapods-এর মাধ্যমে iOS-এর জন্য তৈরি করার সময় সমস্যা

iOS-এর জন্য তৈরি করার সময়, Cocoapod ইনস্টলেশন ভাষা লোকেল বা UTF-8 এনকোডিং সংক্রান্ত সমস্যার কারণে ব্যর্থ হতে পারে। বর্তমানে এই সমস্যার সমাধান করার জন্য বিভিন্ন উপায় রয়েছে।

  • টার্মিনাল থেকে সরাসরি pod install রান করুন এবং এর ফলে তৈরি হওয়া xcworkspace ফাইলটি খুলুন।

  • Cocoapods-এর ভার্সন ডাউনগ্রেড করে 1.10.2 করুন। সমস্যাটি শুধুমাত্র ভার্সন ১.১১ এবং তার পরবর্তী ভার্সনে রয়েছে।

  • আপনার ~/.bash_profile বা সমতুল্য, export LANG=en_US.UTF-8 যোগ করুন

Firebase Unity SDK-এর ভার্সন কীভাবে আপডেট করবেন

Firebase ইউনিটি SDK-এর ভার্সন আপডেট করার প্রসেস নির্ভর করে কীভাবে সেগুলি প্রাথমিকভাবে ইমপোর্ট করা হয়েছিল তার উপর। এখানে দুটি বিকল্প ইম্পোর্ট পদ্ধতি দেওয়া হল:

  • আপনার প্রোজেক্টের Assets/ ডিরেক্টরির অধীনে .unitypackageটি ফাইল ইমপোর্ট করা হচ্ছে
  • Unity প্যাকেজ ম্যানেজার (UPM) ব্যবহার করে ইমপোর্ট করা
    • Unity 2018.4+ ভার্সনে প্যাকেজ ম্যানেজ করার জন্য এটি সাজেস্ট করা পদ্ধতি।
    • ভবিষ্যতে ভার্সন আপডেট করা সহজ করতে এবং আপনার Assets/ ডিরেক্টরি পরিষ্কার করতে এই পদ্ধতি ব্যবহার করুন।

আপনার Unity প্রোজেক্টে, আপনার সব Firebase প্যাকেজ ম্যানেজ করার জন্য আপনাকে শুধুমাত্র একটি ইমপোর্ট পদ্ধতি ব্যবহার করতে হবে। নিচের নির্দেশাবলী শুধু ব্যক্তিগত প্যাকেজের ভার্সন আপডেট করার জন্যই নয়, প্রয়োজন হলে, প্যাকেজ ম্যানেজমেন্ট UPM-এ (ইম্পোর্ট করার সাজেস্ট করা পদ্ধতি) মাইগ্রেট করার জন্যও ব্যবহার করা যেতে পারে।