এই নির্দেশিকা বর্ণনা করে কিভাবে Firebase Crashlytics SDK ব্যবহার করে আপনার ক্র্যাশ রিপোর্ট কাস্টমাইজ করতে হয়। ডিফল্টরূপে, Crashlytics স্বয়ংক্রিয়ভাবে আপনার সমস্ত অ্যাপের ব্যবহারকারীদের জন্য ক্র্যাশ রিপোর্ট সংগ্রহ করে (আপনি স্বয়ংক্রিয় ক্র্যাশ রিপোর্টিং বন্ধ করতে পারেন এবং পরিবর্তে আপনার ব্যবহারকারীদের জন্য অপ্ট-ইন রিপোর্টিং সক্ষম করতে পারেন )। Crashlytics বাক্সের বাইরে চারটি লগিং প্রক্রিয়া সরবরাহ করে: কাস্টম কী , কাস্টম লগ , ব্যবহারকারী শনাক্তকারী এবং ধরা ব্যতিক্রম ।
কাস্টম কী যোগ করুন
কাস্টম কীগুলি আপনাকে আপনার অ্যাপের নির্দিষ্ট অবস্থা পেতে সাহায্য করে যা ক্র্যাশের দিকে নিয়ে যায়। আপনি আপনার ক্র্যাশ রিপোর্টের সাথে নির্বিচারে কী/মান জোড়া সংযুক্ত করতে পারেন, তারপর Firebase কনসোলে ক্র্যাশ রিপোর্টগুলি অনুসন্ধান এবং ফিল্টার করতে কাস্টম কীগুলি ব্যবহার করুন৷
Crashlytics ড্যাশবোর্ডে , আপনি একটি কাস্টম কী মেলে এমন সমস্যাগুলি অনুসন্ধান করতে পারেন৷
আপনি যখন কনসোলে একটি নির্দিষ্ট সমস্যা পর্যালোচনা করছেন, আপনি প্রতিটি ইভেন্টের জন্য সংশ্লিষ্ট কাস্টম কীগুলি দেখতে পারেন ( কী সাবট্যাব) এবং এমনকি কাস্টম কী (পৃষ্ঠার শীর্ষে ফিল্টার মেনু) দ্বারা ইভেন্টগুলি ফিল্টার করতে পারেন৷
কী/মান জোড়া সেট করতে setCustomKey
উদাহরণ পদ্ধতি ব্যবহার করুন। মনে রাখবেন যে কোনো আদিম বা String
আর্গুমেন্ট গ্রহণ করার জন্য value
প্যারামিটারের জন্য setCustomKey
ওভারলোড করা হয়েছে। এখানে কিছু উদাহরণঃ:
Kotlin+KTX
val crashlytics = Firebase.crashlytics crashlytics.setCustomKeys { key("my_string_key", "foo") // String value key("my_bool_key", true) // boolean value key("my_double_key", 1.0) // double value key("my_float_key", 1.0f) // float value key("my_int_key", 1) // int value }
Java
FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance(); crashlytics.setCustomKey("my_string_key", "foo" /* string value */); crashlytics.setCustomKey("my_bool_key", true /* boolean value */); crashlytics.setCustomKey("my_double_key", 1.0 /* double value */); crashlytics.setCustomKey("my_float_key", 1.0f /* float value */); crashlytics.setCustomKey("my_int_key", 1 /* int value */);
আপনি কী কল করে একটি বিদ্যমান কী-এর মান পরিবর্তন করতে পারেন এবং এটিকে একটি ভিন্ন মানতে সেট করতে পারেন। উদাহরণ স্বরূপ:
Kotlin+KTX
val crashlytics = Firebase.crashlytics crashlytics.setCustomKeys { key("current_level", 3) key("last_UI_action", "logged_in") }
Java
FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance(); crashlytics.setCustomKey("current_level", 3); crashlytics.setCustomKey("last_UI_action", "logged_in");
setCustomKeys
ইনস্ট্যান্স পদ্ধতিতে CustomKeysAndValues
এর একটি উদাহরণ পাস করে বাল্কে কী/মান জোড়া যোগ করুন:
Kotlin+KTX
Kotlin এর জন্য, বিদ্যমান কার্যকারিতা CustomKeysAndValues
বিল্ডার ব্যবহার করার চেয়ে সহজ।
crashlytics.setCustomKeys { key("str_key", "hello") key("bool_key", true) key("int_key", 1) key("long_key", 1L) key("float_key", 1.0f) key("double_key", 1.0) }
Java
CustomKeysAndValues keysAndValues = new CustomKeysAndValues.Builder() .putString("string key", "string value") .putString("string key 2", "string value 2") .putBoolean("boolean key", True) .putBoolean("boolean key 2", False) .putFloat("float key", 1.01) .putFloat("float key 2", 2.02) .build(); FirebaseCrashlytics.getInstance().setCustomKeys(keysAndValues);
কাস্টম লগ বার্তা যোগ করুন
ক্র্যাশের দিকে পরিচালিত ইভেন্টগুলির জন্য নিজেকে আরও প্রসঙ্গ দিতে, আপনি আপনার অ্যাপে কাস্টম ক্র্যাশলিটিক্স লগ যোগ করতে পারেন। Crashlytics লগগুলিকে আপনার ক্র্যাশ ডেটার সাথে সংযুক্ত করে এবং লগ ট্যাবের অধীনে Firebase কনসোলের Crashlytics পৃষ্ঠায় প্রদর্শন করে।
সমস্যা চিহ্নিত করতে সাহায্য করার জন্য log
ব্যবহার করুন। উদাহরণ স্বরূপ:
Kotlin+KTX
Firebase.crashlytics.log("message")
Java
FirebaseCrashlytics.getInstance().log("message");
ব্যবহারকারী শনাক্তকারী সেট করুন
একটি সমস্যা নির্ণয় করতে, আপনার ব্যবহারকারীদের মধ্যে কোনটি প্রদত্ত ক্র্যাশের সম্মুখীন হয়েছে তা জানা প্রায়ই সহায়ক। Crashlytics আপনার ক্র্যাশ রিপোর্টে ব্যবহারকারীদের বেনামে সনাক্ত করার একটি উপায় অন্তর্ভুক্ত করে।
আপনার রিপোর্টে ব্যবহারকারীর আইডি যোগ করতে, প্রতিটি ব্যবহারকারীকে একটি আইডি নম্বর, টোকেন বা হ্যাশ করা মান আকারে একটি অনন্য শনাক্তকারী বরাদ্দ করুন:
Kotlin+KTX
Firebase.crashlytics.setUserId("user123456789")
Java
FirebaseCrashlytics.getInstance().setUserId("user123456789");
আপনি যদি এটি সেট করার পরে কখনও একটি ব্যবহারকারী শনাক্তকারী সাফ করতে চান, তাহলে মানটিকে একটি ফাঁকা স্ট্রিংয়ে পুনরায় সেট করুন। একটি ব্যবহারকারী শনাক্তকারী সাফ করা বিদ্যমান Crashlytics রেকর্ড মুছে ফেলা হয় না। আপনি যদি একটি ব্যবহারকারী আইডির সাথে যুক্ত রেকর্ড মুছে ফেলতে চান, Firebase সহায়তার সাথে যোগাযোগ করুন ।
(শুধুমাত্র Android NDK) NDK ক্র্যাশ রিপোর্টে মেটাডেটা যোগ করুন
NDK ক্র্যাশ রিপোর্টে মেটাডেটা যোগ করতে আপনি ঐচ্ছিকভাবে crashlytics.h
হেডারটি আপনার C++ কোডে অন্তর্ভুক্ত করতে পারেন, যেমন কাস্টম কী , কাস্টম লগ , ব্যবহারকারী শনাক্তকারী । এই সমস্ত বিকল্পগুলি উপরে এই পৃষ্ঠায় বর্ণিত হয়েছে।
crashlytics.h
ফায়ারবেস অ্যান্ড্রয়েড SDK গিটহাব রিপোজিটরিতে হেডার-অনলি C++ লাইব্রেরি হিসেবে উপলব্ধ।
NDK C++ API ব্যবহার করার নির্দেশাবলীর জন্য হেডার ফাইলের মন্তব্যগুলি পড়ুন।
মেমরি দুর্নীতি সমস্যা ডিবাগ করতে GWP-ASan রিপোর্ট অন্তর্ভুক্ত করুন
Crashlytics আপনাকে GWP-ASan রিপোর্ট সংগ্রহ করে নেটিভ মেমরি ত্রুটির কারণে সৃষ্ট ক্র্যাশ ডিবাগ করতে সাহায্য করতে পারে। এই মেমরি-সম্পর্কিত ত্রুটিগুলি আপনার অ্যাপের মধ্যে মেমরি দুর্নীতির সাথে যুক্ত হতে পারে, যা অ্যাপ নিরাপত্তা দুর্বলতার প্রধান কারণ।
আপনি Crashlytics ড্যাশবোর্ডে কোনো সমস্যার বিবরণে ক্লিক করলে আপনি একটি নতুন "মেমরি স্ট্যাক ট্রেস" ট্যাবে এই ডেটা দেখতে পারেন।
আপনি নতুন "GWP-ASan রিপোর্ট" সংকেত এবং ফিল্টার ব্যবহার করতে পারেন যাতে এই ডেটার সাথে সমস্ত সমস্যা দ্রুত দেখতে পারেন৷
আপনি GWP-ASan মেমরি রিপোর্ট পেতে পারেন যদি আপনি স্পষ্টভাবে আপনার অ্যাপে GWP-ASan সক্ষম করেন এবং NDK v18.3.6+ (Firebase BoM v31.3.0+) এর জন্য Crashlytics SDK ব্যবহার করেন। আপনি Android ডকুমেন্টেশনে উদাহরণ নেটিভ কোড ব্যবহার করে আপনার GWP-ASan সেটআপ পরীক্ষা করতে পারেন।
অ-মারাত্মক ব্যতিক্রম রিপোর্ট করুন
আপনার অ্যাপের ক্র্যাশগুলি স্বয়ংক্রিয়ভাবে রিপোর্ট করার পাশাপাশি, Crashlytics আপনাকে অ-মারাত্মক ব্যতিক্রমগুলি রেকর্ড করতে দেয় এবং পরের বার আপনার অ্যাপ চালু হলে সেগুলি আপনাকে পাঠায়।
আপনার অ্যাপের catch
ব্লকগুলিতে অ-মারাত্মক ব্যতিক্রমগুলি রেকর্ড করতে recordException
পদ্ধতি ব্যবহার করুন। উদাহরণ স্বরূপ:
Kotlin+KTX
try { methodThatThrows() } catch (e: Exception) { Firebase.crashlytics.recordException(e) // handle your exception here }
Java
try { methodThatThrows(); } catch (Exception e) { FirebaseCrashlytics.getInstance().recordException(e); // handle your exception here }
সমস্ত রেকর্ড করা ব্যতিক্রমগুলি ফায়ারবেস কনসোলে অ-মারাত্মক সমস্যা হিসাবে উপস্থিত হয়। ইস্যু সারাংশে Android সংস্করণ এবং হার্ডওয়্যার ডিভাইসের ব্রেকডাউন সহ আপনি সাধারণত ক্র্যাশ থেকে পাওয়া সমস্ত রাষ্ট্রীয় তথ্য ধারণ করে।
Crashlytics আপনার অ্যাপে পারফরম্যান্সের প্রভাব কমাতে একটি ডেডিকেটেড ব্যাকগ্রাউন্ড থ্রেডে ব্যতিক্রম প্রক্রিয়া করে। আপনার ব্যবহারকারীদের নেটওয়ার্ক ট্র্যাফিক কমাতে, Crashlytics ব্যাচগুলি একসাথে ব্যতিক্রমগুলি লগ করেছে এবং পরের বার অ্যাপ চালু হলে সেগুলি পাঠায়৷
অপ্ট-ইন রিপোর্টিং সক্ষম করুন
ডিফল্টরূপে, Crashlytics স্বয়ংক্রিয়ভাবে আপনার সমস্ত অ্যাপের ব্যবহারকারীদের জন্য ক্র্যাশ রিপোর্ট সংগ্রহ করে। ব্যবহারকারীদের তাদের পাঠানো ডেটার উপর আরও নিয়ন্ত্রণ দিতে, আপনি স্বয়ংক্রিয় রিপোর্টিং অক্ষম করে অপ্ট-ইন রিপোর্টিং সক্ষম করতে পারেন এবং যখন আপনি আপনার কোডে চয়ন করেন তখন শুধুমাত্র Crashlytics-এ ডেটা পাঠাতে পারেন:
আপনার
AndroidManifest.xml
ফাইলেরapplication
ব্লকে, স্বয়ংক্রিয় সংগ্রহ বন্ধ করতে একটিmeta-data
ট্যাগ যোগ করুন:<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />
রানটাইমে Crashlytics ডেটা সংগ্রহ ওভাররাইড কল করে নির্বাচিত ব্যবহারকারীদের জন্য সংগ্রহ সক্ষম করুন। আপনার অ্যাপের লঞ্চ জুড়ে ওভাররাইড মান বজায় থাকে যাতে Crashlytics স্বয়ংক্রিয়ভাবে রিপোর্ট সংগ্রহ করতে পারে। স্বয়ংক্রিয় ক্র্যাশ রিপোর্টিং থেকে অপ্ট আউট করতে, ওভাররাইড মান হিসাবে
false
পাস করুন।false
সেট করা হলে, অ্যাপের পরবর্তী রান না হওয়া পর্যন্ত নতুন মান প্রযোজ্য হবে না।Kotlin+KTX
Firebase.crashlytics.setCrashlyticsCollectionEnabled(true)
Java
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);
ক্র্যাশ ইনসাইট ডেটা পরিচালনা করুন
ক্র্যাশ ইনসাইট আপনাকে আপনার বেনামী স্ট্যাক ট্রেসগুলিকে অন্যান্য ফায়ারবেস অ্যাপের ট্রেসের সাথে তুলনা করে এবং আপনার সমস্যাটি একটি বৃহত্তর প্রবণতার অংশ কিনা তা আপনাকে জানিয়ে সমস্যার সমাধান করতে সহায়তা করে। অনেক সমস্যার জন্য, ক্র্যাশ ইনসাইট এমনকি আপনাকে ক্র্যাশ ডিবাগ করতে সহায়তা করার জন্য সংস্থান সরবরাহ করে।
ক্র্যাশ ইনসাইট সাধারণ স্থিতিশীলতার প্রবণতা সনাক্ত করতে সমষ্টিগত ক্র্যাশ ডেটা ব্যবহার করে। আপনি যদি আপনার অ্যাপের ডেটা শেয়ার না করতে চান, তাহলে Firebase কনসোলে আপনার Crashlytics সমস্যা তালিকার শীর্ষে থাকা ক্র্যাশ ইনসাইটস মেনু থেকে আপনি ক্র্যাশ ইনসাইটগুলি অপ্ট-আউট করতে পারেন৷