ইউনিটির জন্য ক্র্যাশ রিপোর্ট কাস্টমাইজ করুন

প্ল্যাটফর্ম নির্বাচন করুন: iOS+ অ্যান্ড্রয়েড ফ্লাটার ইউনিটি


আপনি Firebase কনসোলের DevOps & Engagement > Crashlytics ড্যাশবোর্ডে কোনো একটি ইস্যুতে ক্লিক করে তার একটি বিস্তারিত ইভেন্ট রিপোর্ট পেতে পারেন। আপনার অ্যাপে কী ঘটছে এবং Crashlytics এ রিপোর্ট করা ইভেন্টগুলোর পারিপার্শ্বিক পরিস্থিতি আরও ভালোভাবে বোঝার জন্য আপনি সেই রিপোর্টগুলো কাস্টমাইজ করতে পারেন।

  • Report caught exceptions and uncaught exceptions to Crashlytics .

  • Include GWP-ASan reports to debug memory corruption issues.

  • Instrument your app to log custom keys , custom log messages , and user identifiers .

  • আপনার অ্যাপ যদি Google Analytics জন্য Firebase SDK ব্যবহার করে, তাহলে স্বয়ংক্রিয়ভাবে ব্রেডক্রাম্ব লগ পান। এই লগগুলি আপনাকে আপনার অ্যাপে Crashlytics দ্বারা সংগৃহীত কোনো ইভেন্টের পূর্ববর্তী ব্যবহারকারীর কার্যকলাপ সম্পর্কে ধারণা দেয়।

  • Turn off automatic crash reporting and enable opt-in reporting for your users. Note that, by default, Crashlytics automatically collects crash reports for all your app's users.

ব্যতিক্রম রিপোর্ট করুন

প্রতিবেদনে ধরা পড়া ব্যতিক্রমগুলো

যদি প্রত্যাশিত কোনো ব্যতিক্রম ঘটে, তাহলে আপনি Crashlytics SDK-কে দিয়ে সেগুলোকে নন-ফেটাল ইভেন্ট হিসেবে রিপোর্ট করাতে পারেন। এই ইভেন্টগুলো ডিভাইসে লগ করা হয় এবং পরবর্তীতে ফেটাল ইভেন্ট রিপোর্টের সাথে অথবা যখন ব্যবহারকারী গেমটি পুনরায় চালু করেন, তখন পাঠানো হয়।

You can log exceptions in C# using the following method:

Crashlytics.LogException(Exception ex);

You can log expected exceptions in your game's try/catch blocks:

try {
    myMethodThatThrows();
} catch (Exception e) {
   Crashlytics.LogException(e);
   // handle your exception here!
}

অনাকাঙ্ক্ষিত ব্যতিক্রমগুলির প্রতিবেদন করুন

যেসব আনক্যাচড এক্সেপশন আপনার গেম ক্র্যাশ করে না (উদাহরণস্বরূপ, গেম লজিকের মধ্যে থাকা আনক্যাচড C# এক্সেপশন), সেগুলোকে ফেটাল ইভেন্ট হিসেবে রিপোর্ট করার জন্য আপনি আপনার ইউনিটি প্রজেক্টে Crashlytics ইনিশিয়ালাইজ করার Crashlytics.ReportUncaughtExceptionsAsFatal Crashlytics true সেট করতে পারেন। এই ইভেন্টগুলো রিয়েল-টাইমে Crashlytics রিপোর্ট করা হয়, যার জন্য ব্যবহারকারীকে গেমটি পুনরায় চালু করার প্রয়োজন হয় না।

Reporting these uncaught exceptions as fatal events means that they'll count in your crash-free user statistics and towards velocity alerts.

Note that native crashes are always reported as fatal events . These events are logged on device and then sent along when the end-user restarts the game.

void Start() {
    // Since there is no try-block surrounding this call, if an exception is thrown,
    // it is considered unexpected.
    // Setting `Crashlytics.ReportUncaughtExceptionsAsFatal = true`
    // will ensure that such cases are reported as fatals.
    thirdPartyMethodThatMayThrow();
}

Include GWP-ASan reports to debug memory corruption issues

যেসব অ্যান্ড্রয়েড অ্যাপ IL2CPP ব্যবহার করে, সেগুলোর ক্ষেত্রে Crashlytics GWP-ASan রিপোর্ট সংগ্রহের মাধ্যমে নেটিভ মেমরি ত্রুটির কারণে হওয়া ক্র্যাশ ডিবাগ করতে সাহায্য করতে পারে। এই মেমরি-সম্পর্কিত ত্রুটিগুলো আপনার অ্যাপের মেমরি করাপশনের সাথে যুক্ত থাকতে পারে, যা অ্যাপের নিরাপত্তা ঝুঁকির প্রধান কারণ।

In the DevOps & Engagement > Crashlytics dashboard of the Firebase console, you can do the following with this data:

  • You can view this data in a new "Memory stack traces" tab when you click into the details of an issue.

  • You can use the new "GWP-ASan report" signal and filter to quickly view all issues with this data.

আপনার অ্যাপে যদি ইউনিটির জন্য সর্বশেষ Crashlytics এসডিকে (v10.7.0+) ব্যবহৃত হয় এবং GWP-ASan স্পষ্টভাবে সক্রিয় করা থাকে (এর জন্য আপনাকে আপনার অ্যান্ড্রয়েড অ্যাপ ম্যানিফেস্ট পরিবর্তন করতে হবে), তবেই আপনি GWP-ASan মেমরি রিপোর্ট পেতে পারেন। আপনার অ্যাপে কোনো C++ কোড থাকলে, আপনি অ্যান্ড্রয়েড ডকুমেন্টেশনে দেওয়া উদাহরণ নেটিভ কোড ব্যবহার করে আপনার GWP-ASan সেটআপ পরীক্ষা করতে পারেন।

কাস্টম কী যোগ করুন

কাস্টম কী আপনাকে ক্র্যাশ হওয়ার ঠিক আগের আপনার অ্যাপের নির্দিষ্ট অবস্থা জানতে সাহায্য করে। আপনি আপনার ক্র্যাশ রিপোর্টগুলোর সাথে যেকোনো কী-ভ্যালু পেয়ার যুক্ত করতে পারেন, এবং তারপর Firebase কনসোলের DevOps & Engagement > Crashlytics ড্যাশবোর্ডে সেই কাস্টম কী ব্যবহার করে ক্র্যাশ রিপোর্ট সার্চ ও ফিল্টার করতে পারেন।

  • You can search for issues that match a custom key.

  • যখন আপনি কনসোলে কোনো নির্দিষ্ট সমস্যা পর্যালোচনা করছেন, তখন আপনি প্রতিটি ইভেন্টের সাথে সম্পর্কিত কাস্টম কীগুলো দেখতে পারেন ( কীজ সাবট্যাব) এবং এমনকি কাস্টম কী দ্বারা ইভেন্টগুলো ফিল্টারও করতে পারেন (পৃষ্ঠার শীর্ষে থাকা ফিল্টার মেনু)।

When called multiple times, new values for existing keys will update the value, and only the most current value is captured when a crash is recorded.

Crashlytics.SetCustomKey(string key, string value);

কাস্টম লগ বার্তা যোগ করুন

কোনো ক্র্যাশের আগের ঘটনাগুলো সম্পর্কে আরও ভালোভাবে বোঝার জন্য, আপনি আপনার অ্যাপে কাস্টম Crashlytics লগ যোগ করতে পারেন। Crashlytics এই লগগুলোকে আপনার ক্র্যাশ ডেটার সাথে সংযুক্ত করে এবং যখন আপনি কোনো ইস্যুর বিস্তারিত দেখেন, তখন সেগুলোকে 'লগস' ট্যাবে প্রদর্শন করে ( Firebase কনসোলের 'ডেভঅপ্স অ্যান্ড এনগেজমেন্ট > Crashlytics ড্যাশবোর্ডে আপনার সমস্ত ইস্যু দেখতে পারেন)।

Crashlytics.Log(string message);

ব্যবহারকারী শনাক্তকারী সেট করুন

আপনি আপনার অ্যাপ্লিকেশনের শেষ ব্যবহারকারীকে তাদের কোনো ব্যক্তিগত তথ্য প্রকাশ বা প্রেরণ না করেই অনন্যভাবে শনাক্ত করতে একটি আইডি নম্বর, টোকেন বা হ্যাশ করা মান ব্যবহার করতে পারেন। আপনি এটিকে একটি ফাঁকা স্ট্রিং-এ সেট করে মানটি মুছেও ফেলতে পারেন। Firebase কনসোলের DevOps & Engagement > Crashlytics ড্যাশবোর্ডে কোনো নির্দিষ্ট ক্র্যাশ দেখার সময় এই মানটি প্রদর্শিত হয়।

Crashlytics.SetUserId(string identifier);

ব্রেডক্রাম্ব লগ পান

কোনো ক্র্যাশ, নন-ফেটাল বা এএনআর ইভেন্টের আগে একজন ব্যবহারকারী আপনার অ্যাপের সাথে কী ধরনের ইন্টারঅ্যাকশন করেছেন, তা ব্রেডক্রাম্ব লগ থেকে আরও ভালোভাবে বোঝা যায়। কোনো সমস্যা পুনরুৎপাদন এবং ডিবাগ করার সময় এই লগগুলো সহায়ক হতে পারে।

ব্রেডক্রাম্ব লগ গুগল অ্যানালিটিক্স দ্বারা চালিত হয়, তাই ব্রেডক্রাম্ব লগ পেতে হলে আপনাকে আপনার ফায়ারবেস প্রোজেক্টের জন্য গুগল অ্যানালিটিক্স সক্রিয় করতে হবে এবং আপনার অ্যাপে Google Analytics জন্য ফায়ারবেস এসডিকে (SDK) যোগ করতে হবে । এই শর্তগুলো পূরণ হয়ে গেলে, আপনি যখন কোনো ইস্যুর বিস্তারিত দেখবেন, তখন লগস ট্যাবের মধ্যে ইভেন্টের ডেটার সাথে ব্রেডক্রাম্ব লগ স্বয়ংক্রিয়ভাবে যুক্ত হয়ে যাবে ( Firebase কনসোলের DevOps & Engagement > Crashlytics ড্যাশবোর্ডে আপনার সমস্ত ইস্যু দেখতে পাবেন)।

Analytics এসডিকে স্বয়ংক্রিয়ভাবে ` screen_view ইভেন্টটি লগ করে , যা ব্রেডক্রাম্ব লগ-কে ক্র্যাশ, নন-ফেটাল বা এএনআর ইভেন্টের আগে দেখা স্ক্রিনগুলির একটি তালিকা দেখাতে সক্ষম করে। একটি screen_view ব্রেডক্রাম্ব লগে একটি firebase_screen_class প্যারামিটার থাকে।

ব্যবহারকারীর সেশনের মধ্যে আপনি ম্যানুয়ালি লগ করা যেকোনো কাস্টম ইভেন্ট , ইভেন্টের প্যারামিটার ডেটা সহ, ব্রেডক্রাম্ব লগে যুক্ত হয়। এই ডেটা একটি ক্র্যাশ, নন-ফেটাল বা এএনআর ইভেন্টের দিকে পরিচালিত ব্যবহারকারীর ধারাবাহিক কার্যকলাপ দেখাতে সাহায্য করতে পারে।

Note that you can control the collection and use of Google Analytics data , which includes the data that populates breadcrumb logs.

অপ্ট-ইন রিপোর্টিং সক্ষম করুন

By default, Crashlytics automatically collects crash reports for all your app's users. You can give users more control over the data they send by letting them opt-in to reporting crashes.

শুধুমাত্র নির্বাচিত ব্যবহারকারীদের জন্য স্বয়ংক্রিয় ডেটা সংগ্রহ নিষ্ক্রিয় করতে, রানটাইমে Crashlytics ডেটা সংগ্রহ ওভাররাইডটি কল করুন। এই ওভাররাইড মানটি আপনার অ্যাপের পরবর্তী সমস্ত লঞ্চ জুড়ে অপরিবর্তিত থাকে, ফলে Crashlytics স্বয়ংক্রিয়ভাবে সেই ব্যবহারকারীর জন্য রিপোর্ট সংগ্রহ করতে পারে।

Crashlytics.IsCrashlyticsCollectionEnabled = true

যদি ব্যবহারকারী পরবর্তীতে ডেটা সংগ্রহ থেকে বিরত থাকেন, তাহলে আপনি ওভাররাইড ভ্যালু হিসেবে false পাস করতে পারেন, যা ব্যবহারকারী পরবর্তীবার অ্যাপটি চালু করার সময় প্রযোজ্য হবে এবং সেই ব্যবহারকারীর জন্য এর পরের সমস্ত লঞ্চ জুড়ে স্থায়ী থাকবে।

ক্র্যাশ ইনসাইটস ডেটা পরিচালনা করুন

ক্র্যাশ ইনসাইটস আপনার অ্যানোনিমাইজড স্ট্যাক ট্রেসকে অন্যান্য ফায়ারবেস অ্যাপের ট্রেসের সাথে তুলনা করে সমস্যা সমাধানে সাহায্য করে এবং আপনার সমস্যাটি কোনো বৃহত্তর প্রবণতার অংশ কিনা তা জানিয়ে দেয়। অনেক সমস্যার ক্ষেত্রে, ক্র্যাশ ইনসাইটস এমনকি ক্র্যাশটি ডিবাগ করতে সাহায্য করার জন্য রিসোর্সও সরবরাহ করে।

ক্র্যাশ ইনসাইটস সাধারণ স্থিতিশীলতার প্রবণতা শনাক্ত করতে একত্রিত ক্র্যাশ ডেটা ব্যবহার করে। আপনি যদি আপনার অ্যাপের ডেটা শেয়ার করতে না চান, তাহলে Firebase কনসোলের DevOps & Engagement > Crashlytics ড্যাশবোর্ডে ইস্যু তালিকার শীর্ষে থাকা ক্র্যাশ ইনসাইটস মেনু থেকে এটি ব্যবহার করা থেকে বিরত থাকতে পারেন।

পরবর্তী পদক্ষেপ