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


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

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

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

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

রিপোর্টে ব্যতিক্রম ধরা পড়েছে

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

আপনি নিম্নলিখিত পদ্ধতি ব্যবহার করে C# তে ব্যতিক্রম লগ করতে পারেন:

Crashlytics.LogException(Exception ex);

আপনার গেমের ট্রাই/ক্যাচ ব্লকে আপনি প্রত্যাশিত ব্যতিক্রমগুলি লগ করতে পারেন:

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

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

আপনার গেমটি ক্র্যাশ না করে এমন কিছু ব্যতিক্রম (যেমন, গেম লজিকে আনক্যাচড C# ব্যতিক্রম), আপনি Crashlytics SDK কে Crashlytics.ReportUncaughtExceptionsAsFatal প্রোপার্টি true এ সেট করে মারাত্মক ঘটনা হিসেবে রিপোর্ট করতে পারেন যেখানে আপনি আপনার Unity প্রজেক্টে Crashlytics ইনিশিয়ালাইজ করেন । এই ইভেন্টগুলি রিয়েল-টাইমে Crashlytics এ রিপোর্ট করা হয় এবং শেষ ব্যবহারকারীকে গেমটি পুনরায় চালু করার প্রয়োজন হয় না।

এই অধরা ব্যতিক্রমগুলিকে মারাত্মক ঘটনা হিসাবে রিপোর্ট করার অর্থ হল এগুলি আপনার ক্র্যাশ-মুক্ত ব্যবহারকারীর পরিসংখ্যান এবং বেগ সতর্কতার জন্য গণনা করা হবে।

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

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();
}

মেমরি দুর্নীতির সমস্যাগুলি ডিবাগ করতে GWP-ASan রিপোর্ট অন্তর্ভুক্ত করুন

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

  • Crashlytics ড্যাশবোর্ডে কোনও সমস্যার বিবরণে ক্লিক করলে আপনি একটি নতুন "মেমরি স্ট্যাক ট্রেস" ট্যাবে এই ডেটা দেখতে পারবেন।

  • এই ডেটার সমস্ত সমস্যা দ্রুত দেখতে আপনি নতুন "GWP-ASan রিপোর্ট" সিগন্যাল এবং ফিল্টার ব্যবহার করতে পারেন।

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

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

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

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

একাধিকবার কল করা হলে, বিদ্যমান কীগুলির জন্য নতুন মানগুলি মানটি আপডেট করবে এবং ক্র্যাশ রেকর্ড করা হলে কেবলমাত্র সবচেয়ে বর্তমান মানটি ধরা হবে।

Crashlytics.SetCustomKey(string key, string value);

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

লগ করা বার্তাগুলি আপনার ক্র্যাশ ডেটার সাথে সম্পর্কিত এবং একটি নির্দিষ্ট ক্র্যাশ দেখার সময় Firebase Crashlytics ড্যাশবোর্ডে দৃশ্যমান।

Crashlytics.Log(string message);

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

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

Crashlytics.SetUserId(string identifier);

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

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

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

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

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

মনে রাখবেন যে আপনি Google Analytics ডেটা সংগ্রহ এবং ব্যবহার নিয়ন্ত্রণ করতে পারেন, যার মধ্যে ব্রেডক্রাম্ব লগ পূরণ করে এমন ডেটা অন্তর্ভুক্ত রয়েছে।

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

ডিফল্টরূপে, Crashlytics স্বয়ংক্রিয়ভাবে আপনার সমস্ত অ্যাপ ব্যবহারকারীদের জন্য ক্র্যাশ রিপোর্ট সংগ্রহ করে। আপনি ব্যবহারকারীদের ক্র্যাশ রিপোর্ট করার জন্য অপ্ট-ইন করার অনুমতি দিয়ে তাদের প্রেরিত ডেটার উপর আরও নিয়ন্ত্রণ দিতে পারেন।

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

Crashlytics.IsCrashlyticsCollectionEnabled = true

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

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

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

ক্র্যাশ ইনসাইটস সাধারণ স্থিতিশীলতার প্রবণতা সনাক্ত করতে সমষ্টিগত ক্র্যাশ ডেটা ব্যবহার করে। আপনি যদি আপনার অ্যাপের ডেটা শেয়ার না করতে চান, তাহলে আপনি Firebase কনসোলে আপনার Crashlytics সমস্যা তালিকার শীর্ষে থাকা Crash Insights মেনু থেকে Crash Insights থেকে অপ্ট-আউট করতে পারেন।