Ityক্য এবং ফায়ারবেস এর জন্য সমস্যা সমাধান ও FAQ

এই পৃষ্ঠাটি ইউনিটি-নির্দিষ্ট সমস্যাগুলির জন্য টিপস এবং সমস্যা সমাধানের প্রস্তাব দেয় যা আপনি Firebase ব্যবহার করার সময় সম্মুখীন হতে পারেন।

অন্যান্য চ্যালেঞ্জ আছে বা নীচের রূপরেখা আপনার সমস্যা দেখতে পাচ্ছেন না? চেক আউট করতে ভুলবেন করুন প্রধান Firebase প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী আরো প্যান Firebase বা পণ্য-নির্দিষ্ট প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী জন্য।

Unity 2017.x এবং পরবর্তী ব্যবহার করার সময় .NET সামঞ্জস্য

Unity 2017 এবং পরবর্তীতে একটি পরীক্ষামূলক বিল্ড বিকল্প হিসাবে Firebase .NET 4.x সমর্থন করে। Firebase প্লাগইনগুলির উপাদান ব্যবহার ব্যকরণগত SDK এর .NET আগের সংস্করণে কিছু .NET 4.x শ্রেণীর প্রদান।

অতএব, Firebase ইউনিটি SDK সংস্করণ 5.4.0 এবং পরে থাকা প্লাগইনগুলির সঙ্গে পারেন .NET 3.x বা নেট 4.x সামঞ্জস্যপূর্ণ প্রদান dotnet3 এবং dotnet4 Firebase ইউনিটি SDK এর ডিরেক্টরি।

আপনি যদি একটি Firebase প্লাগইন আমদানি করেন যা আপনার প্রকল্পে সক্রিয় করা .NET সংস্করণের সাথে সামঞ্জস্যপূর্ণ নয়, আপনি .NET ফ্রেমওয়ার্কের কিছু প্রকার থেকে কম্পাইল ত্রুটি দেখতে পাবেন যা পার্স SDK দ্বারা প্রয়োগ করা হয়৷

সংকলন ত্রুটি সমাধান করতে, আপনি যদি .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

আপনি যদি অন্য ফায়ারবেস প্লাগইন আমদানি করেন:

  • আপনার ইউনিটি প্রকল্প, সম্পদ নেভিগেট সালে> সেবা সমাধানকারী> সংস্করণ হ্যান্ডলার> আপডেট আপনার প্রকল্পের জন্য সঠিক ডিএলএল সক্ষম করতে প্লে করুন।

ইউনিটি 2017.1 .NET 4.x প্রকল্পগুলিতে IL2CPP সংকলন

Unity 2017 এবং পরবর্তীতে একটি পরীক্ষামূলক বিল্ড বিকল্প হিসাবে Firebase .NET 4.x সমর্থন করে। Firebase প্লাগইনগুলির উপাদান ব্যবহার ব্যকরণগত SDK এর .NET আগের সংস্করণে কিছু .NET 4.x শ্রেণীর প্রদান।

অতএব, Firebase ইউনিটি SDK সংস্করণ 5.4.0 এবং পরে টাইপ ফরওয়ার্ডিং ডিএলএল যা ব্যকরণগত ধরনের ফরোয়ার্ড (উদাহরণস্বরূপ এর, বিশ্লেষণ বাস্তবায়ন উপলব্ধ System.Threading.Tasks.Task .NET Framework) এর জন্য। দুর্ভাগ্যবশত, IL2CPP (একটি ট্রান্সপাইলার যা C# তে C++ রূপান্তরিত করে) যা ইউনিটি 2017.1.x এ পাঠানো হয়েছে তা সঠিকভাবে টাইপ ফরওয়ার্ডিং DLL প্রক্রিয়া করে না যার ফলে নিম্নলিখিতগুলির মতো বিল্ড ত্রুটি দেখা দেয়:

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

ইউনিটি 2017.1-এ .NET 4.x IL2CPP বিল্ড ত্রুটিগুলির জন্য বর্তমানে কোনও সমাধান উপলব্ধ নেই, তাই IL2CPP-এর সাথে সংকলিত প্রকল্পগুলিতে .NET 4.x ব্যবহার করতে আপনাকে অবশ্যই ইউনিটি 2017.2 বা তার পরে আপগ্রেড করতে হবে৷

ইউনিটি 2017.2 নেটওয়ার্কিং

ফায়ারবেস রিয়েলটাইম ডেটাবেস .NET নেটওয়ার্কিং স্ট্যাক ব্যবহার করে TLS নেটওয়ার্ক সংযোগ তৈরি করে। .NET 4.6 ব্যবহার করার সময় ইউনিটি 2017.2-এ TLS কার্যকারিতা ভেঙে গেছে যার ফলে সম্পাদক এবং ডেস্কটপে রিয়েলটাইম ডেটাবেস প্লাগইন ব্যর্থ হয়।

এই সমস্যার জন্য কোন সমাধান নেই, তাই আপনাকে ইউনিটির একটি ভিন্ন সংস্করণ ব্যবহার করতে হবে, উদাহরণস্বরূপ সংস্করণ 2017.1 বা 2017.3।

Unity 2020-এ Firebase Android কনফিগার ফাইল নেই

ইউনিটি সমর্থনে সংস্করণ যাতে Gradle বিল্ড কাস্টমাইজ করতে ক্ষমতা নেই যে, Firebase সম্পাদক টুল উত্পন্ন Assets/Plugins/Android/Firebase/res/values/google-services.xml একটি Android রিসোর্স হিসাবে একটি মধ্যে প্যাকেজ করা Android বিল্ড, যাতে Firebase SDK এটিকে ডিফল্ট FirebaseApp ইনস্ট্যান্স শুরু করতে ব্যবহার করতে পারে।

ইউনিটি 2020 সালে সমস্ত Android সম্পদ সঙ্গে ডিরেক্টরি হতে হবে .androidlib প্রত্যয়। আপনার প্রকল্পের একটি Firebase SDK এর যে একটি উত্পন্ন ব্যবহার করা হয়, তাহলে Assets/Plugins/Android/Firebase ডিরেক্টরি, এটি নামান্তর Assets/Plugins/Android/Firebase.androidlib । নিশ্চিত করুন যে এতে রয়েছে AndroidManifest.xml , project.properties এবং res/values/google-services.xml

অ্যান্ড্রয়েড অ্যাপ তৈরি করার সময় একক ডেক্সের সমস্যা

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

Cannot fit requested classes in a single dex file.

Dalvik সম্পাদনযোগ্য ( .dex ) ফাইল বর্গ সংজ্ঞা এবং অ্যান্ড্রয়েড অ্যাপ্লিকেশন (জন্য তাদের যুক্ত উপরি তথ্য একটি সেট রাখা ব্যবহার করা হয় .apk )। একটি একক ডেক্স ফাইল 65,536 পদ্ধতির রেফারেন্সে সীমাবদ্ধ। আপনার প্রোজেক্টের সমস্ত অ্যান্ড্রয়েড লাইব্রেরি থেকে মোট পদ্ধতির সংখ্যা এই সীমা ছাড়িয়ে গেলে বিল্ডটি ব্যর্থ হবে৷

ইউনিটি চালু Minification 2017,2 মধ্যে, যা অব্যবহৃত কোড, যা একটি একক Dex ফাইলে উল্লিখিত পদ্ধতি মোট সংখ্যা কমে যায় আউট স্ট্রিপ (ইউনিটি কিছু সংস্করণে বা অন্যান্য টুলস) Proguard ব্যবহার করে। বিকল্প প্লেয়ার সেটিংস> অ্যানড্রইড> প্রকাশনা সেটিংস> অল্প করা খুঁজে পাওয়া যেতে পারে। ইউনিটির বিভিন্ন সংস্করণে বিকল্পগুলি আলাদা হতে পারে তাই অফিসিয়াল ইউনিটি ডকুমেন্টেশন দেখুন।

রেফারেন্সড পদ্ধতির সংখ্যা এখনও সীমা ছাড়িয়ে গেছে, তাহলে অন্য কোনো বিকল্প সক্ষম করা multidex । ইউনিটিতে এটি অর্জনের একাধিক উপায় রয়েছে:

  • তাহলে Custom Gradle Template অধীনে Player Settings সক্রিয় করা হয়, সংশোধন করে mainTemplate.gradle
  • আপনি Android স্টুডিও ব্যবহার করেন তাহলে রপ্তানি প্রকল্পের নির্মাণ করতে, মডিউল-স্তরের সংশোধন build.gradle ফাইল।

আরো বিস্তারিত পাওয়া যাবে multidex ইউজার গাইড

ইউনিটি 2017 এবং ইউনিটি 2018 (ফায়ারবেস ইউনিটি SDK 8.0.0 এবং উচ্চতর) এ Android বিল্ডের জন্য Java 8 সমর্থন এবং ডিসুগারিং

মে 2021 (Firebase Bom v28.0.0), তার সমস্ত Android লাইব্রেরির জন্য Firebase অক্ষম desugaring ইন (দেখুন মুক্তি নোট )। Firebase Unity SDK (8.0.0 এবং উচ্চতর) দিয়ে একটি Android অ্যাপ তৈরি করার সময়, আপনি নিম্নলিখিত বিল্ড ত্রুটি দেখতে পারেন:

> Error while dexing.
 The dependency contains Java 8 bytecode. Please enable desugaring by adding the following to build.gradle

এই পরিবর্তনটি শুধুমাত্র Unity 2017 এবং Unity 2018-এ Android বিল্ডগুলিকে প্রভাবিত করে৷ ইউনিটি -এর একটি নবীনতর সংস্করণ যোগ compileOptions gradle বিল্ড ফাইল ডিফল্টরূপে ব্লক। ইউনিটি 2017 এবং ইউনিটি 2018-এ এই বিল্ড ত্রুটি ঠিক করতে, নিম্নলিখিতগুলির মধ্যে একটি করুন:

  • একটি যোগ করুন compileOptions আপনার gradle টেমপ্লেটে ব্লক:

    1. ব্যবহার করুন Gradle বিল্ড সিস্টেম হিসাবে।
    2. সক্ষম করুন Custom Gradle Template অধীনে Player Settings
    3. নিম্নলিখিত পংক্তিগুলি যোগ mainTemplate.gradle (অথবা মডিউল স্তর build.gradle যদি অ্যান্ড্রয়েড Studio এর জন্য একটি প্রকল্প রপ্তানি):

      android {
          compileOptions {
              sourceCompatibility 1.8
              targetCompatibility 1.8
          }
      }
      
  • বিকল্পভাবে, আপনার Android প্রকল্পের জন্য minSdkVersion বাড়িয়ে 26 বা তার বেশি করুন।

আরও দেখুন অ্যানড্রইড সমস্যাসমাধানের - desugaring বিল্ড ব্যর্থতা

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

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

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

  • Cocoapods-এর সংস্করণ 1.10.2-এ ডাউনগ্রেড করুন। সমস্যাটি শুধুমাত্র 1.11 এবং নতুন সংস্করণে বিদ্যমান।

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