আপনার 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 হিসাবে সেট করে মারাত্মক ঘটনা হিসাবে রিপোর্ট করতে পারেন যেখানে আপনি আপনার ইউনিটি প্রকল্পে ক্র্যাশলিটিক্স শুরু করবেন . শেষ-ব্যবহারকারীর গেমটি পুনরায় চালু করার প্রয়োজন ছাড়াই রিয়েল-টাইমে এই ইভেন্টগুলি ক্র্যাশলিটিক্সে রিপোর্ট করা হয়।

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

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

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 যোগ করতে হবে ৷ একবার এই প্রয়োজনীয়তাগুলি পূরণ হয়ে গেলে, আপনি যখন কোনও সমস্যার বিশদ বিবরণ দেখেন তখন লগ ট্যাবের মধ্যে একটি ইভেন্টের ডেটার সাথে ব্রেডক্রাম্ব লগগুলি স্বয়ংক্রিয়ভাবে অন্তর্ভুক্ত হয়৷

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

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

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

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

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

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

Crashlytics.IsCrashlyticsCollectionEnabled = true

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

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

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