Firebase Crashlytics की क्रैश रिपोर्ट को पसंद के मुताबिक बनाएं


Crashlytics डैशबोर्ड में, किसी समस्या पर क्लिक करके, इवेंट की ज़्यादा जानकारी वाली रिपोर्ट देखी जा सकती है. बेहतर तरीके से समझने के लिए, उन रिपोर्ट को पसंद के मुताबिक बनाया जा सकता है आपके ऐप्लिकेशन में क्या हो रहा है और इवेंट से जुड़ी स्थितियों की जानकारी Crashlytics.

  • अगर आपका ऐप्लिकेशन Google Analytics के लिए Firebase SDK टूल का इस्तेमाल करता है, तो ब्रेडक्रंब लॉग अपने-आप मिलते हैं. इन लॉग से, आपको उपयोगकर्ता की उन कार्रवाइयों के बारे में जानकारी मिलती है जिनकी वजह से आपके ऐप्लिकेशन में Crashlytics से इकट्ठा किया गया इवेंट ट्रिगर होता है.

  • क्रैश की अपने-आप होने वाली रिपोर्टिंग बंद करें और अपने उपयोगकर्ताओं के लिए, ऑप्ट-इन रिपोर्टिंग की सुविधा चालू करें. ध्यान दें कि, डिफ़ॉल्ट रूप से, Crashlytics आपके सभी डिवाइसों के लिए क्रैश रिपोर्ट अपने-आप इकट्ठा करता है उपयोगकर्ता हैं.

कस्टम कुंजियां जोड़ें

कस्टम कुंजियों की मदद से, आपके ऐप्लिकेशन की उस खास स्थिति का पता लगाया जा सकता है जिसकी वजह से क्रैश हो रहा है. आप अपनी क्रैश रिपोर्ट के साथ आर्बिट्रेरी कुंजी/वैल्यू पेयर जोड़ सकते हैं Firebase कंसोल में क्रैश रिपोर्ट को खोजने और फ़िल्टर करने के लिए, कस्टम कुंजियों का इस्तेमाल किया जा सकता है.

  • Crashlytics डैशबोर्ड में, समस्याओं को खोजा जा सकता है जो कस्टम कुंजी से मेल खाते हैं.

  • कंसोल में किसी खास समस्या की समीक्षा करते समय, हर इवेंट के लिए जुड़ी हुई कस्टम कुंजियां (कुंजी सबटैब) और यहां तक कि इवेंट को फ़िल्टर भी करें कस्टम कुंजियों के हिसाब से इवेंट (पेज के सबसे ऊपर फ़िल्टर मेन्यू).

की/वैल्यू पेयर सेट करने के लिए, setCustomKey इंस्टेंस के तरीके का इस्तेमाल करें. ध्यान दें कि value पैरामीटर के लिए, setCustomKey ओवरलोड हो गया है, ताकि किसी भी प्रिमिटिव को स्वीकार किया जा सके या String आर्ग्युमेंट. यहां कुछ उदाहरण दिए गए हैं:

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 लॉग जोड़े जा सकते हैं. 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 क्रैश रिपोर्ट में मेटाडेटा जोड़ने के लिए, अपने C++ कोड में crashlytics.h हेडर को शामिल किया जा सकता है. जैसे, कस्टम कुंजियां, कस्टम लॉग, और उपयोगकर्ता आइडेंटिफ़ायर. ये सभी विकल्प यहां दिए गए हैं ऊपर दिया गया है.

crashlytics.h, Firebase Android SDK टूल के GitHub डेटा संग्रह में, सिर्फ़ हेडर वाली C++ लाइब्रेरी के तौर पर उपलब्ध है.

NDK C++ API इस्तेमाल करने के निर्देशों के लिए, हेडर फ़ाइल में दी गई टिप्पणियां पढ़ें.

मेमोरी के खराब होने की समस्याओं को डीबग करने के लिए, GWP-ASan की रिपोर्ट शामिल करें

Crashlytics, GWP-ASan रिपोर्ट इकट्ठा करके, नेटिव मेमोरी की गड़बड़ियों की वजह से होने वाले क्रैश को डीबग करने में आपकी मदद कर सकता है. मेमोरी से जुड़ी ये गड़बड़ियां, आपके ऐप्लिकेशन की मेमोरी में खराबी है, जो ऐप्लिकेशन की सुरक्षा की मुख्य वजह है जोखिम की आशंकाएं.

  • Crashlytics डैशबोर्ड में किसी समस्या की जानकारी पर क्लिक करने पर, यह डेटा "मेमोरी स्टैक ट्रेस" टैब में दिखता है.

  • इस डेटा से जुड़ी सभी समस्याओं को तुरंत देखने के लिए, "GWP-ASan रिपोर्ट" के नए सिग्नल और फ़िल्टर का भी इस्तेमाल किया जा सकता है.

आपको GWP-ASan की मेमोरी रिपोर्ट मिल सकती है, अगर GWP-ASan को साफ़ तौर पर चालू करें साथ ही, NDK v18.3.6+ (Firebase BoMCrashlytics v31.3.0+). GWP-ASan के सेटअप की जांच करने के लिए, Android दस्तावेज़ में नेटिव कोड का उदाहरण.

गैर-घातक अपवादों की रिपोर्ट करें

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
}

रिकॉर्ड किए गए सभी अपवाद, Firebase कंसोल में गंभीर समस्याओं के तौर पर दिखते हैं. समस्या के सारांश में राज्य की वह सारी जानकारी होती है जो आपको आम तौर पर मिलती है साथ ही, Android वर्शन और हार्डवेयर डिवाइस के हिसाब से ब्रेकडाउन भी दिखेंगे.

Crashlytics, खास तौर पर बने बैकग्राउंड थ्रेड पर अपवादों को प्रोसेस करता है, ताकि अपने ऐप्लिकेशन की परफ़ॉर्मेंस पर पड़ने वाले असर को कम किया जा सकता है. अपने उपयोगकर्ताओं के नेटवर्क को कम करने के लिए ट्रैफ़िक, Crashlytics बैच ने अपवादों को एक साथ लॉग किया और उन्हें अगली बार ऐप्लिकेशन लॉन्च होने पर.

ब्रेडक्रंब लॉग पाएं

ब्रेडक्रंब लॉग से आपको इस बारे में बेहतर जानकारी मिलती है कि उपयोगकर्ता ने आपके ऐप्लिकेशन के साथ कैसे इंटरैक्ट किया, जिसकी वजह से ऐप्लिकेशन क्रैश हुआ, गड़बड़ी हुई या 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, जब आप इसे कोड में चुनते हैं:

  1. अपनी AndroidManifest.xml फ़ाइल के application ब्लॉक में, जोड़ें अपने-आप इकट्ठा होने की सुविधा को बंद करने के लिए meta-data टैग:

    <meta-data
        android:name="firebase_crashlytics_collection_enabled"
        android:value="false" />
    
  2. Crashlytics डेटा को कॉल करके, चुनिंदा उपयोगकर्ताओं के लिए डेटा कलेक्शन की सुविधा चालू करें रनटाइम के दौरान कलेक्शन में बदलाव होता है. सभी लॉन्च के लिए ओवरराइड वैल्यू बनी रहती है आपके ऐप्लिकेशन को डाउनलोड करें, ताकि Crashlytics अपने-आप रिपोर्ट इकट्ठा कर सके. क्रैश की अपने-आप होने वाली रिपोर्टिंग से ऑप्ट आउट करने के लिए, बदलाव करने की वैल्यू के तौर पर false पास करें. जब यह नीति सेट की जाती है false में, नई वैल्यू ऐप्लिकेशन के अगली बार चलने तक लागू नहीं होती.

    Kotlin+KTX

    Firebase.crashlytics.setCrashlyticsCollectionEnabled(true)

    Java

    FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);

क्रैश की अहम जानकारी का डेटा मैनेज करें

'क्रैश इनसाइट' सुविधा की मदद से, पहचान छिपाने वाले आपके स्टैक की तुलना की जा सकती है. इससे समस्याएं हल करने में मदद मिलती है ट्रेस करता है और बताता है कि क्या आपकी समस्या रुझान का एक अहम हिस्सा है. कई समस्याओं के लिए, क्रैश इनसाइट, संसाधनों को ताकि आपको क्रैश को डीबग करने में मदद मिल सके.

क्रैश इनसाइट में, ऐप्लिकेशन क्रैश होने से जुड़े इकट्ठा किए गए डेटा का इस्तेमाल किया जाता है, ताकि स्थिरता से जुड़े सामान्य रुझानों का पता लगाया जा सके. अगर आपको अपने ऐप्लिकेशन का डेटा शेयर नहीं करना है, तो क्रैश इनसाइट की सुविधा से ऑप्ट-आउट किया जा सकता है क्रैश की अहम जानकारी वाले मेन्यू से, जो Crashlytics की समस्या सूची में सबसे ऊपर मौजूद है Firebase कंसोल में देखें.