আপনার 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 সেট করে মারাত্মক ঘটনা হিসাবে রিপোর্ট করতে পারেন। ReportUncaughtExceptionsAsFatal প্রপার্টি true হিসাবে যেখানে আপনি 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 ব্যবহার করে এমন Android অ্যাপগুলির জন্য, Crashlytics আপনাকে GWP-ASan রিপোর্ট সংগ্রহ করে নেটিভ মেমরির ত্রুটির কারণে সৃষ্ট ক্র্যাশগুলি ডিবাগ করতে সাহায্য করতে পারে। এই মেমরি-সম্পর্কিত ত্রুটিগুলি আপনার অ্যাপের মধ্যে মেমরি দুর্নীতির সাথে যুক্ত হতে পারে, যা অ্যাপ নিরাপত্তা দুর্বলতার প্রধান কারণ।

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

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

আপনি GWP-ASan মেমরি রিপোর্ট পেতে পারেন যদি আপনার অ্যাপটি ইউনিটির জন্য সর্বশেষ Crashlytics SDK ব্যবহার করে (v10.7.0+) এবং GWP-ASan স্পষ্টভাবে সক্ষম করে থাকে ( আপনার Android অ্যাপ ম্যানিফেস্ট পরিবর্তন করতে হবে)। আপনার অ্যাপে যদি কোনো 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 দ্বারা চালিত হয়, তাই ব্রেডক্রাম্ব লগগুলি পেতে, আপনাকে আপনার Firebase প্রকল্পের জন্য Google Analytics সক্ষম করতে হবে এবং আপনার অ্যাপে Google Analytics এর জন্য Firebase SDK যোগ করতে হবে ৷ একবার এই প্রয়োজনীয়তাগুলি পূরণ হয়ে গেলে, আপনি যখন কোনও সমস্যার বিশদ বিবরণ দেখেন তখন লগ ট্যাবের মধ্যে একটি ইভেন্টের ডেটার সাথে ব্রেডক্রাম্ব লগগুলি স্বয়ংক্রিয়ভাবে অন্তর্ভুক্ত হয়৷

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

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

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

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

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

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

Crashlytics.IsCrashlyticsCollectionEnabled = true

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

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

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

,


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

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

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

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

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

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

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

Crashlytics.LogException(Exception ex);

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

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

অপ্রত্যাশিত ব্যতিক্রম রিপোর্ট

আপনার গেমটি ক্র্যাশ করবেন না এমন অনাকাঙ্ক্ষিত ব্যতিক্রমগুলির জন্য (উদাহরণস্বরূপ, গেম লজিকের ক্ষেত্রে অনাবৃত সি# ব্যতিক্রম), আপনি Crashlytics এসডিকে Crashlytics.ReportUncaughtExceptionsAsFatal Crashlytics করে তাদের মারাত্মক ঘটনা হিসাবে রিপোর্ট করতে পারেন true এই ইভেন্টগুলি শেষ-ব্যবহারকারীর গেমটি পুনরায় চালু করার প্রয়োজন ছাড়াই রিয়েল-টাইমে 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();
}

মেমরি দুর্নীতির সমস্যাগুলি ডিবাগ করার জন্য জিডব্লিউপি-আসান প্রতিবেদনগুলি অন্তর্ভুক্ত করুন

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

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

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

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

কাস্টম কী যুক্ত করুন

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

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

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

Crashlytics.SetCustomKey(string key, string value);

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

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

Crashlytics.Log(string message);

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

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

Crashlytics.SetUserId(string identifier);

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

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

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

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

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

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

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

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

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

Crashlytics.IsCrashlyticsCollectionEnabled = true

ক্র্যাশ অন্তর্দৃষ্টি ডেটা পরিচালনা করুন

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

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

,


In the Crashlytics dashboard, you can click into an issue and get a detailed event report. You can customize those reports to help you better understand what's happening in your app and the circumstances around events reported to Crashlytics .

  • Automatically get breadcrumb logs if your app uses the Firebase SDK for Google Analytics . These logs give you visibility into user actions leading up to a Crashlytics -collected event in your app.

  • 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.

Report exceptions

Report caught exceptions

If you have exceptions that are expected, you can have the Crashlytics SDK report them as non-fatal events . These events are logged on device and then sent along with the next fatal event report or when the end-user restarts the game.

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!
}

Report uncaught exceptions

For uncaught exceptions that don't crash your game (for example, uncaught C# exceptions in game logic), you can have the Crashlytics SDK report them as fatal events by setting the Crashlytics.ReportUncaughtExceptionsAsFatal property to true where you initialize Crashlytics in your Unity project . These events are reported to Crashlytics in real-time without the need for the end-user to restart the game.

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

For Android apps that use IL2CPP, Crashlytics can help you debug 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.

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

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

You can get GWP-ASan memory reports if 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 ). If you have any C++ code in your app, you can test your GWP-ASan setup using the example native code in the Android documentation .

Add custom keys

Custom keys help you get the specific state of your app leading up to a crash. You can associate arbitrary key/value pairs with your crash reports, then use the custom keys to search and filter crash reports in the Firebase console.

  • In the Crashlytics dashboard , you can search for issues that match a custom key.
  • When you're reviewing a specific issue in the console, you can view the associated custom keys for each event ( Keys subtab) and even filter the events by custom keys ( Filter menu at the top of the page).

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

Add custom log messages

Logged messages are associated with your crash data and are visible in the Firebase Crashlytics dashboard when viewing a specific crash.

Crashlytics.Log(string message);

Set user identifiers

You can use an ID number, token, or hashed value to uniquely identify the end-user of your application without disclosing or transmitting any of their personal information. You can also clear the value by setting it to a blank string. This value is displayed in the Firebase Crashlytics dashboard when viewing a specific crash.

Crashlytics.SetUserId(string identifier);

Get breadcrumb logs

Breadcrumb logs give you a better understanding of the interactions that a user had with your app leading up to a crash, non-fatal, or ANR event. These logs can be helpful when trying to reproduce and debug an issue.

Breadcrumb logs are powered by Google Analytics, so to get breadcrumb logs, you need to enable Google Analytics for your Firebase project and add the Firebase SDK for Google Analytics to your app. Once these requirements are met, breadcrumb logs are automatically included with an event's data within the Logs tab when you view the details of an issue.

The Analytics SDK automatically logs the screen_view event which enables the breadcrumb logs to show a list of screens viewed before the crash, non-fatal, or ANR event. A screen_view breadcrumb log contains a firebase_screen_class parameter.

Breadcrumb logs are also populated with any custom events that you manually log within the user's session, including the event's parameter data. This data can help show a series of user actions leading up to a crash, non-fatal, or ANR event.

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

Enable opt-in reporting

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.

To disable automatic collection and initialize Crashlytics only for selected users, call the Crashlytics data collection override at runtime. The override value persists across launches of your app so Crashlytics can automatically collect reports. To opt out of automatic crash reporting, pass false as the override value. When set to false , the new value does not apply until the next run of the app.

Crashlytics.IsCrashlyticsCollectionEnabled = true

Manage Crash Insights data

Crash Insights helps you resolve issues by comparing your anonymized stack traces to traces from other Firebase apps and letting you know if your issue is part of a larger trend. For many issues, Crash Insights even provides resources to help you debug the crash.

Crash Insights uses aggregated crash data to identify common stability trends. If you'd prefer not to share your app's data, you can opt-out of Crash Insights from the Crash Insights menu at the top of your Crashlytics issue list in the Firebase console .