এই কুইকস্টার্টটি বর্ণনা করে কিভাবে Firebase Crashlytics SDK ব্যবহার করে আপনার অ্যাপে Firebase Crashlytics সেট আপ করবেন যাতে আপনি Firebase কনসোলে ব্যাপক ক্র্যাশ রিপোর্ট পেতে পারেন।
Crashlytics সেট আপ করার জন্য Firebase কনসোল এবং আপনার IDE উভয় ক্ষেত্রেই কাজ করতে হবে (যেমন একটি Firebase কনফিগারেশন ফাইল এবং Crashlytics SDK যোগ করা)। সেটআপ শেষ করতে, আপনার প্রথম ক্র্যাশ রিপোর্ট Firebase-এ পাঠানোর জন্য আপনাকে একটি পরীক্ষামূলক ক্র্যাশ জোর করতে হবে।
শুরু করার আগে
যদি আপনি ইতিমধ্যেই না করে থাকেন, তাহলে আপনার ইউনিটি প্রজেক্টে Firebase যোগ করুন । যদি আপনার ইউনিটি প্রজেক্ট না থাকে, তাহলে আপনি একটি নমুনা অ্যাপ ডাউনলোড করতে পারেন।
প্রস্তাবিত : ক্র্যাশ, নন-ফ্যাটাল, বা ANR ইভেন্টের দিকে পরিচালিত ব্যবহারকারীর ক্রিয়াগুলি বুঝতে ব্রেডক্রাম্ব লগগুলি স্বয়ংক্রিয়ভাবে পেতে, আপনার Firebase প্রকল্পে Google Analytics সক্ষম করতে হবে।
যদি আপনার বিদ্যমান Firebase প্রকল্পে Google Analytics সক্ষম না থাকে, তাহলে আপনি আপনার Integrations ট্যাব থেকে Google Analytics সক্ষম করতে পারেন
> Firebase কনসোলে প্রজেক্ট সেটিংস । যদি আপনি একটি নতুন Firebase প্রকল্প তৈরি করেন, তাহলে প্রকল্প তৈরির কর্মপ্রবাহের সময় Google Analytics সক্ষম করুন।
ধাপ ১ : আপনার অ্যাপে Crashlytics SDK যোগ করুন
মনে রাখবেন যে যখন আপনি আপনার Firebase প্রকল্পের সাথে আপনার ইউনিটি প্রকল্পটি নিবন্ধন করেছিলেন, তখন আপনি ইতিমধ্যেই Firebase Unity SDK ডাউনলোড করে থাকতে পারেন এবং নিম্নলিখিত ধাপগুলিতে বর্ণিত প্যাকেজগুলি যোগ করে থাকতে পারেন।
Firebase Unity SDK ডাউনলোড করুন, তারপর সুবিধাজনক কোথাও SDK আনজিপ করুন। Firebase Unity SDK প্ল্যাটফর্ম-নির্দিষ্ট নয়।
আপনার ওপেন ইউনিটি প্রজেক্টে, Assets > Import Package > Custom Package এ যান।
আনজিপ করা SDK থেকে, Crashlytics SDK (
FirebaseCrashlytics.unitypackage) আমদানি করতে নির্বাচন করুন।ব্রেডক্রাম্ব লগের সুবিধা নিতে আপনার অ্যাপে (
FirebaseAnalytics.unitypackage) Google Analytics এর জন্য Firebase SDK যোগ করুন। নিশ্চিত করুন যে আপনার Firebase প্রজেক্টে Google Analytics সক্রিয় আছে ।ইমপোর্ট ইউনিটি প্যাকেজ উইন্ডোতে, ইমপোর্ট এ ক্লিক করুন।
ধাপ ২ : Crashlytics শুরু করুন
একটি নতুন C# স্ক্রিপ্ট তৈরি করুন, তারপর এটি দৃশ্যের একটি
GameObjectএ যোগ করুন।আপনার প্রথম দৃশ্যটি খুলুন, তারপর
CrashlyticsInitializerনামে একটি খালিGameObjectতৈরি করুন।নতুন অবজেক্টের জন্য ইন্সপেক্টরের "Add Component" এ ক্লিক করুন।
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+ (অ্যাপল প্ল্যাটফর্ম)
বিল্ড সেটিংস ডায়ালগ থেকে, আপনার প্রকল্পটি একটি Xcode ওয়ার্কস্পেসে রপ্তানি করুন।
আপনার অ্যাপ তৈরি করুন।
অ্যাপল প্ল্যাটফর্মের জন্য, ফায়ারবেস ইউনিটি এডিটর প্লাগইন স্বয়ংক্রিয়ভাবে আপনার এক্সকোড প্রকল্পটিকে প্রতিটি বিল্ডের জন্য ফায়ারবেস সার্ভারে একটি Crashlytics -সামঞ্জস্যপূর্ণ প্রতীক ফাইল তৈরি এবং আপলোড করার জন্য কনফিগার করে।
অ্যান্ড্রয়েড
বিল্ড সেটিংস ডায়ালগ থেকে, নিম্নলিখিতগুলির মধ্যে একটি করুন:
আপনার প্রকল্প তৈরি করতে একটি অ্যান্ড্রয়েড স্টুডিও প্রকল্পে রপ্তানি করুন; অথবা
ইউনিটি এডিটর থেকে সরাসরি আপনার APK তৈরি করুন।
নির্মাণের আগে, নিশ্চিত করুন যে বিল্ড সেটিংস ডায়ালগে Create symbols.zip এর চেকবক্সটি চেক করা আছে।
আপনার বিল্ড শেষ হয়ে গেলে, একটি Crashlytics -compatible symbol ফাইল তৈরি করুন এবং নিম্নলিখিত Firebase CLI কমান্ডটি চালিয়ে Firebase সার্ভারে আপলোড করুন:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
FIREBASE_APP_ID : আপনার Firebase Android অ্যাপ আইডি (আপনার প্যাকেজের নাম নয়)
উদাহরণ Firebase Android অ্যাপ আইডি:1:567383003300:android:17104a2ced0c9b9bআপনার Firebase অ্যাপ আইডি খুঁজে বের করার দুটি উপায় এখানে দেওয়া হল:
আপনার
google-services.jsonফাইলে, আপনার অ্যাপ আইডি হলmobilesdk_app_idমান; অথবাFirebase কনসোলে, আপনার Project settings এ যান। Your apps কার্ডে স্ক্রোল করুন, তারপর পছন্দসই Firebase অ্যাপের অ্যাপ আইডি খুঁজে পেতে তার উপর ক্লিক করুন।
PATH/TO/SYMBOLS : CLI দ্বারা তৈরি প্রতীক ফাইলের পথ
একটি অ্যান্ড্রয়েড স্টুডিও প্রকল্পে রপ্তানি করা হয় — PATH/TO/SYMBOLS হল
unityLibrary/symbolsডিরেক্টরি, যা Gradle বা অ্যান্ড্রয়েড স্টুডিওর মাধ্যমে অ্যাপ তৈরি করার পরে রপ্তানি করা প্রকল্পের রুটে তৈরি হয়।ইউনিটির ভেতর থেকে সরাসরি APK তৈরি করা হয়েছে — PATH/TO/SYMBOLS হল আপনার বিল্ড শেষ হওয়ার পরে প্রজেক্ট রুট ডিরেক্টরিতে তৈরি জিপ করা প্রতীক ফাইলের পথ (উদাহরণস্বরূপ:)।
myproject/myapp-1.0-v100.symbols.zip)।
View advanced options for using the Firebase CLI command for symbol file generation and upload
পতাকা বিবরণ --generator=csymUses the legacy cSYM symbol file generator instead of the default Breakpad generator
Not recommended for use. We recommend using the default Breakpad symbol file generator.
--generator=breakpadUses the Breakpad symbol file generator
Note that the default for symbol file generation is Breakpad. Only use this flag if you've added
symbolGenerator { csym() }in your build configuration and you want to override it to use Breakpad instead.--dry-runGenerates the symbol files but does not upload them
This flag is useful if you want to inspect the content of the files that are sent.
--debugProvides additional debugging information
Step 5 : Force a test crash to finish setup
To finish setting up Crashlytics and see initial data in the Crashlytics dashboard of the Firebase console, you need to force a test crash.
Find an existing
GameObject, then add to it the following script. This script will cause a test crash a few seconds after you run your app.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"); } } }
Build your app and upload symbol information after your build finishes.
iOS+ : The Firebase Unity Editor plugin automatically configures your Xcode project to upload your symbol file.
Android : For your Android apps that use IL2CPP, run the Firebase CLI
crashlytics:symbols:uploadcommand to upload your symbol file.
Run your app. Once your app is running, watch the device log and wait for the exception to trigger from the
CrashlyticsTester.iOS+ : View logs in the bottom pane of Xcode.
Android : View logs by running the following command in the terminal:
adb logcat.
Go to the Crashlytics dashboard of the Firebase console to see your test crash.
If you've refreshed the console and you're still not seeing the test crash after five minutes, enable debug logging to see if your app is sending crash reports.
And that's it! Crashlytics is now monitoring your app for crashes. Visit the Crashlytics dashboard to view and investigate all your reports and statistics.
পরবর্তী পদক্ষেপ
- (Recommended) For Android apps that use IL2CPP, get help debugging crashes caused by native memory errors by collecting GWP-ASan reports . These memory-related errors can be associated with memory corruption within your app, which is the leading cause of app security vulnerabilities. To take advantage of this debugging feature, make sure your app uses the latest Crashlytics SDK for Unity (v10.7.0+) and has GWP-ASan explicitly enabled (requires you to modify your Android App Manifest ).
- Customize your crash report setup by adding opt-in reporting, logs, keys, and tracking of non-fatal errors.
- Integrate with Google Play so that you can filter your Android app's crash reports by Google Play track directly in the Crashlytics dashboard. This allows you to better focus your dashboard on specific builds.