| প্ল্যাটফর্ম নির্বাচন করুন: | iOS+ অ্যান্ড্রয়েড অ্যান্ড্রয়েড এনডিকে ফ্লাটার ইউনিটি |
এই নির্দেশিকায় বর্ণনা করা হয়েছে কীভাবে আপনার ইউনিটি প্রোজেক্টে Firebase Crashlytics ব্যবহার শুরু করবেন।
আপনার অ্যাপে Firebase Crashlytics SDK সেট আপ করার পরে, আপনি Firebase কনসোলে বিস্তারিত ক্র্যাশ রিপোর্ট পেতে পারেন।
Crashlytics সেট আপ করার জন্য Firebase কনসোল এবং আপনার IDE উভয় স্থানেই কিছু কাজ করতে হয় (যেমন একটি ফায়ারবেস কনফিগারেশন ফাইল এবং Crashlytics SDK যোগ করা)। সেটআপ শেষ করতে, ফায়ারবেসে আপনার প্রথম ক্র্যাশ রিপোর্ট পাঠানোর জন্য আপনাকে একটি টেস্ট ক্র্যাশ ঘটাতে হবে।
শুরু করার আগে
যদি আগে থেকে না করে থাকেন, তাহলে আপনার ইউনিটি প্রজেক্টে ফায়ারবেস যোগ করুন । যদি আপনার কোনো ইউনিটি প্রজেক্ট না থাকে, তাহলে আপনি একটি স্যাম্পল অ্যাপ ডাউনলোড করতে পারেন।
সুপারিশকৃত : কোনো ক্র্যাশ, নন-ফেটাল বা এএনআর ইভেন্টের আগে ব্যবহারকারীর কার্যকলাপ বোঝার জন্য স্বয়ংক্রিয়ভাবে ব্রেডক্রাম্ব লগ পেতে, আপনাকে আপনার ফায়ারবেস প্রজেক্টে Google Analytics সক্রিয় করতে হবে।
আপনার বিদ্যমান Firebase প্রজেক্টে যদি Google Analytics সক্রিয় করা না থাকে, তাহলে আপনি আপনার প্রজেক্টের Integrations ট্যাব থেকে Google Analytics সক্রিয় করতে পারেন।
Firebase কনসোলে > প্রজেক্ট সেটিংস । আপনি যদি একটি নতুন Firebase প্রজেক্ট তৈরি করেন, তাহলে প্রজেক্ট তৈরির প্রক্রিয়া চলাকালীন Google Analytics সক্রিয় করুন।
ধাপ ১ : আপনার অ্যাপে Crashlytics SDK যোগ করুন
মনে রাখবেন যে, যখন আপনি আপনার ইউনিটি প্রজেক্টকে ফায়ারবেস প্রজেক্টের সাথে রেজিস্টার করেছেন, তখন আপনি হয়তো ইতিমধ্যেই Firebase Unity এসডিকে ডাউনলোড করে ফেলেছেন এবং নিম্নলিখিত ধাপগুলিতে বর্ণিত প্যাকেজগুলি যুক্ত করে ফেলেছেন।
Firebase Unity SDK ডাউনলোড করুন, তারপর SDK-টি আপনার সুবিধামত কোনো জায়গায় আনজিপ করুন। Firebase Unity SDK কোনো নির্দিষ্ট প্ল্যাটফর্মের জন্য নয়।
আপনার খোলা ইউনিটি প্রজেক্টে, Assets > Import Package > Custom Package- এ যান।
আনজিপ করা SDK থেকে, Crashlytics SDK (
FirebaseCrashlytics.unitypackage) ইম্পোর্ট করার জন্য নির্বাচন করুন।ব্রেডক্রাম্ব লগের সুবিধা নিতে আপনার অ্যাপে Google Analytics এর জন্য Firebase SDK-টিও (
FirebaseAnalytics.unitypackage) যোগ করুন। নিশ্চিত করুন যে আপনার Firebase প্রজেক্টে Google Analytics সক্রিয় করা আছে ।ইমপোর্ট ইউনিটি প্যাকেজ উইন্ডোতে, ইমপোর্ট-এ ক্লিক করুন।
ধাপ ২ : Crashlytics চালু করুন
একটি নতুন C# স্ক্রিপ্ট তৈরি করুন, তারপর সেটিকে সিন-এর একটি
GameObjectযুক্ত করুন।আপনার প্রথম সিনটি খুলুন, তারপর
CrashlyticsInitializerনামের একটি খালিGameObjectতৈরি করুন।নতুন অবজেক্টটির জন্য ইন্সপেক্টরে থাকা অ্যাড কম্পোনেন্ট- এ ক্লিক করুন।
CrashlyticsInitializerঅবজেক্টে যোগ করার জন্য আপনারCrashlytics Initস্ক্রিপ্টটি নির্বাচন করুন।
স্ক্রিপ্টের
Startমেথডে Crashlytics চালু করুন:using System.Collections; using System.Collections.Generic; using UnityEngine; // Import Firebase and Crashlytics using Firebase; using Firebase.Crashlytics; public class CrashlyticsInit : MonoBehaviour { // Use this for initialization void Start () { // Initialize Firebase Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => { var dependencyStatus = task.Result; if (dependencyStatus == Firebase.DependencyStatus.Available) { // Create and hold a reference to your FirebaseApp, // where app is a Firebase.FirebaseApp property of your application class. // Crashlytics will use the DefaultInstance, as well; // this ensures that Crashlytics is initialized. Firebase.FirebaseApp app = Firebase.FirebaseApp.DefaultInstance; // When this property is set to true, Crashlytics will report all // uncaught exceptions as fatal events. This is the recommended behavior. Crashlytics.ReportUncaughtExceptionsAsFatal = true; // Set a flag here for indicating that your project is ready to use Firebase. } else { UnityEngine.Debug.LogError(System.String.Format( "Could not resolve all Firebase dependencies: {0}",dependencyStatus)); // Firebase Unity SDK is not safe to use here. } }); } // Update is called once per frame void Update() // ... }
ধাপ ৩ : (শুধুমাত্র অ্যান্ড্রয়েডের জন্য) প্রতীক আপলোড করার জন্য প্রস্তুত হন
এই ধাপটি শুধুমাত্র সেইসব অ্যান্ড্রয়েড অ্যাপের জন্য প্রয়োজন, যেগুলো IL2CPP ব্যবহার করে।
যেসব অ্যান্ড্রয়েড অ্যাপ ইউনিটির মোনো স্ক্রিপ্টিং ব্যাকএন্ড ব্যবহার করে, তাদের জন্য এই ধাপগুলোর প্রয়োজন নেই।
অ্যাপল প্ল্যাটফর্ম অ্যাপের জন্য এই ধাপগুলোর প্রয়োজন নেই, কারণ ফায়ারবেস ইউনিটি এডিটর প্লাগইনটি আপনার এক্সকোড প্রজেক্টকে সিম্বল আপলোড করার জন্য স্বয়ংক্রিয়ভাবে কনফিগার করে দেয়।
Crashlytics এর Unity SDK 8.6.1+-এ স্বয়ংক্রিয়ভাবে NDK ক্র্যাশ রিপোর্টিং অন্তর্ভুক্ত থাকে, যা Crashlytics Android-এ Unity IL2CPP ক্র্যাশ স্বয়ংক্রিয়ভাবে রিপোর্ট করতে সক্ষম করে। তবে, Crashlytics ড্যাশবোর্ডে নেটিভ লাইব্রেরি ক্র্যাশের সিম্বলিকেটেড স্ট্যাক ট্রেস দেখতে হলে, আপনাকে Firebase CLI ব্যবহার করে বিল্ড করার সময় সিম্বল তথ্য আপলোড করতে হবে।
সিম্বল আপলোডিংয়ের জন্য প্রস্তুত হতে, Firebase CLI ইনস্টল করার নির্দেশাবলী অনুসরণ করুন।
আপনি যদি ইতিমধ্যেই CLI ইনস্টল করে থাকেন, তবে এর সর্বশেষ সংস্করণে আপডেট করে নিন ।
ধাপ ৪ : আপনার প্রজেক্ট তৈরি করুন এবং সিম্বলগুলো আপলোড করুন
iOS+ (অ্যাপল প্ল্যাটফর্ম)
বিল্ড সেটিংস ডায়ালগ থেকে আপনার প্রজেক্টটি একটি এক্সকোড ওয়ার্কস্পেসে এক্সপোর্ট করুন।
আপনার অ্যাপ তৈরি করুন।
অ্যাপল প্ল্যাটফর্মের জন্য, ফায়ারবেস ইউনিটি এডিটর প্লাগইনটি প্রতিটি বিল্ডের জন্য আপনার এক্সকোড প্রজেক্টকে স্বয়ংক্রিয়ভাবে এমনভাবে কনফিগার করে, যাতে এটি একটি Crashlytics -উপযোগী সিম্বল ফাইল তৈরি করে ফায়ারবেস সার্ভারে আপলোড করে।
অ্যান্ড্রয়েড
বিল্ড সেটিংস ডায়ালগ থেকে, নিম্নলিখিতগুলির মধ্যে একটি করুন:
আপনার প্রজেক্ট বিল্ড করার জন্য অ্যান্ড্রয়েড স্টুডিও প্রজেক্টে এক্সপোর্ট করুন; অথবা
সরাসরি ইউনিটি এডিটর থেকে আপনার APK তৈরি করুন।
বিল্ড করার আগে, বিল্ড সেটিংস ডায়ালগে ' Create symbols.zip' অপশনের চেকবক্সটি চেক করা আছে কিনা তা নিশ্চিত করুন।
আপনার বিল্ড সম্পন্ন হয়ে গেলে, একটি Crashlytics উপযোগী সিম্বল ফাইল তৈরি করুন এবং নিম্নলিখিত Firebase CLI কমান্ডটি চালিয়ে সেটি Firebase সার্ভারগুলিতে আপলোড করুন:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
FIREBASE_APP_ID : আপনার ফায়ারবেস অ্যান্ড্রয়েড অ্যাপ আইডি (প্যাকেজ নেম নয়)
উদাহরণস্বরূপ ফায়ারবেস অ্যান্ড্রয়েড অ্যাপ আইডি:1:567383003300:android:17104a2ced0c9b9bআপনার ফায়ারবেস অ্যাপ আইডি খুঁজে বের করার দুটি উপায় নিচে দেওয়া হলো:
আপনার
google-services.jsonফাইলে, আপনার অ্যাপ আইডি হলmobilesdk_app_idভ্যালুটি; অথবাFirebase কনসোলে, আপনার প্রজেক্ট সেটিংসে যান। নিচে স্ক্রল করে 'Your apps' কার্ড পর্যন্ত যান, তারপর কাঙ্ক্ষিত Firebase অ্যাপটির অ্যাপ আইডি খুঁজে পেতে সেটিতে ক্লিক করুন।
PATH/TO/SYMBOLS : CLI দ্বারা তৈরি সিম্বল ফাইলের পাথ
অ্যান্ড্রয়েড স্টুডিও প্রজেক্টে এক্সপোর্ট করার ক্ষেত্রে — PATH/TO/SYMBOLS হলো
unityLibrary/symbolsডিরেক্টরি, যা গ্রেডল বা অ্যান্ড্রয়েড স্টুডিওর মাধ্যমে অ্যাপটি বিল্ড করার পর এক্সপোর্ট করা প্রজেক্টের রুটে তৈরি হয়।সরাসরি ইউনিটির ভেতর থেকে APK তৈরি করা হয়েছে — আপনার বিল্ড শেষ হলে প্রোজেক্ট রুট ডিরেক্টরিতে তৈরি হওয়া জিপ করা সিম্বল ফাইলের পাথটিই হলো PATH/TO/SYMBOLS (উদাহরণস্বরূপ:
myproject/myapp-1.0-v100.symbols.zip)
সিম্বল ফাইল তৈরি ও আপলোড করার জন্য Firebase সিএলআই কমান্ড ব্যবহারের উন্নত বিকল্পগুলো দেখুন।
পতাকা বর্ণনা --generator=csymডিফল্ট ব্রেকপ্যাড জেনারেটরের পরিবর্তে লিগ্যাসি cSYM সিম্বল ফাইল জেনারেটর ব্যবহার করে।
ব্যবহারের জন্য সুপারিশ করা হয় না। আমরা ডিফল্ট ব্রেকপ্যাড সিম্বল ফাইল জেনারেটর ব্যবহার করার পরামর্শ দিই।
--generator=breakpadব্রেকপ্যাড সিম্বল ফাইল জেনারেটর ব্যবহার করে
মনে রাখবেন যে সিম্বল ফাইল তৈরির জন্য ডিফল্ট হলো ব্রেকপ্যাড। শুধুমাত্র তখনই এই ফ্ল্যাগটি ব্যবহার করুন যদি আপনি যোগ করে থাকেন।
আপনার বিল্ড কনফিগারেশনে symbolGenerator { csym() }আছে এবং আপনি এটিকে ওভাররাইড করে এর পরিবর্তে Breakpad ব্যবহার করতে চান।--dry-runপ্রতীক ফাইলগুলো তৈরি করে কিন্তু আপলোড করে না।
প্রেরিত ফাইলগুলোর বিষয়বস্তু পরীক্ষা করতে চাইলে এই ফ্ল্যাগটি কার্যকর।
--debugঅতিরিক্ত ডিবাগিং তথ্য প্রদান করে
ধাপ ৫ : সেটআপ শেষ করতে একটি টেস্ট ক্র্যাশ ঘটান।
Crashlytics সেটআপ শেষ করতে এবং Firebase কনসোলের Crashlytics ড্যাশবোর্ডে প্রাথমিক ডেটা দেখতে, আপনাকে একটি টেস্ট ক্র্যাশ ঘটাতে হবে।
একটি বিদ্যমান
GameObjectখুঁজুন, তারপর তাতে নিম্নলিখিত স্ক্রিপ্টটি যোগ করুন। এই স্ক্রিপ্টটি আপনার অ্যাপ চালানোর কয়েক সেকেন্ড পরে টেস্টটি ক্র্যাশ করাবে।using System; using UnityEngine; public class CrashlyticsTester : MonoBehaviour { int updatesBeforeException; // Use this for initialization void Start () { updatesBeforeException = 0; } // Update is called once per frame void Update() { // Call the exception-throwing method here so that it's run // every frame update throwExceptionEvery60Updates(); } // A method that tests your Crashlytics implementation by throwing an // exception every 60 frame updates. You should see reports in the // Firebase console a few minutes after running your app with this method. void throwExceptionEvery60Updates() { if (updatesBeforeException > 0) { updatesBeforeException--; } else { // Set the counter to 60 updates updatesBeforeException = 60; // Throw an exception to test your Crashlytics implementation throw new System.Exception("test exception please ignore"); } } }
আপনার অ্যাপটি বিল্ড করুন এবং বিল্ড শেষ হলে সিম্বল তথ্য আপলোড করুন।
iOS+ : Firebase Unity Editor প্লাগইনটি আপনার সিম্বল ফাইল আপলোড করার জন্য স্বয়ংক্রিয়ভাবে আপনার Xcode প্রজেক্ট কনফিগার করে।
অ্যান্ড্রয়েড : আপনার যে অ্যান্ড্রয়েড অ্যাপগুলো IL2CPP ব্যবহার করে, সেগুলোর সিম্বল ফাইল আপলোড করার জন্য Firebase CLI-এর
crashlytics:symbols:uploadকমান্ডটি চালান।
আপনার অ্যাপটি চালান। অ্যাপটি চালু হয়ে গেলে, ডিভাইস লগটি পর্যবেক্ষণ করুন এবং
CrashlyticsTesterথেকে এক্সেপশনটি ট্রিগার হওয়ার জন্য অপেক্ষা করুন।iOS+ : Xcode-এর নিচের প্যানে লগগুলো দেখুন।
অ্যান্ড্রয়েড : টার্মিনালে নিম্নলিখিত কমান্ডটি চালিয়ে লগ দেখুন:
adb logcat.
আপনার টেস্ট ক্র্যাশটি দেখতে Firebase কনসোলের Crashlytics ড্যাশবোর্ডে যান।
আপনি যদি কনসোল রিফ্রেশ করার পরেও পাঁচ মিনিট পর টেস্টটি ক্র্যাশ করতে না দেখেন, তাহলে আপনার অ্যাপটি ক্র্যাশ রিপোর্ট পাঠাচ্ছে কিনা তা দেখতে ডিবাগ লগিং চালু করুন ।
ব্যাস, এটুকুই! Crashlytics এখন আপনার অ্যাপে ক্র্যাশ হচ্ছে কিনা তা পর্যবেক্ষণ করছে। আপনার সমস্ত রিপোর্ট ও পরিসংখ্যান দেখতে এবং খতিয়ে দেখতে Crashlytics ড্যাশবোর্ডে যান।
পরবর্তী পদক্ষেপ
(সুপারিশকৃত) যেসব অ্যান্ড্রয়েড অ্যাপ IL2CPP ব্যবহার করে, সেগুলোর ক্ষেত্রে GWP-ASan রিপোর্ট সংগ্রহ করে নেটিভ মেমরি ত্রুটির কারণে হওয়া ক্র্যাশ ডিবাগ করতে সাহায্য নিন। এই মেমরি-সম্পর্কিত ত্রুটিগুলো আপনার অ্যাপের মেমরি করাপশনের সাথে যুক্ত থাকতে পারে, যা অ্যাপের নিরাপত্তা ঝুঁকির প্রধান কারণ। এই ডিবাগিং ফিচারের সুবিধা নিতে, নিশ্চিত করুন যে আপনার অ্যাপটি Unity-এর জন্য সর্বশেষ Crashlytics SDK (v10.7.0+) ব্যবহার করছে এবং এতে GWP-ASan স্পষ্টভাবে সক্রিয় করা আছে (এর জন্য আপনাকে আপনার অ্যান্ড্রয়েড অ্যাপ ম্যানিফেস্ট পরিবর্তন করতে হবে)।
অপ্ট-ইন রিপোর্টিং, লগ, কী এবং অ-মারাত্মক ত্রুটির ট্র্যাকিং যোগ করে আপনার ক্র্যাশ রিপোর্ট সেটআপটি কাস্টমাইজ করুন ।
উন্নত বিশ্লেষণ এবং বিভিন্ন ফিচারের জন্য, যেমন আপনার ডেটা কোয়েরি করা, কাস্টম ড্যাশবোর্ড তৈরি করা এবং কাস্টম অ্যালার্ট সেট আপ করার জন্য, আপনার ডেটা BigQuery বা Cloud Logging এ এক্সপোর্ট করুন ।