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

प्लैटफ़ॉर्म चुनें: iOS+ Android Flutter Unity


किसी समस्या के बारे में ज़्यादा जानकारी पाने के लिए, DevOps और ऑडियंस की दिलचस्पी > Crashlytics डैशबोर्ड में जाकर, उस समस्या पर क्लिक करें. इसके बाद, आपको इवेंट की ज़्यादा जानकारी वाली रिपोर्ट दिखेगी.Firebase इन रिपोर्ट को अपनी ज़रूरत के हिसाब से बनाया जा सकता है. इससे आपको यह बेहतर ढंग से समझने में मदद मिलती है कि आपके ऐप्लिकेशन में क्या हो रहा है और इवेंट किन वजहों से हुए जिनकी रिपोर्ट Crashlytics को दी गई है.

कस्टम बटन जोड़ना

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

  • कस्टम बटन से मेल खाने वाली समस्याओं को खोजा जा सकता है.

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

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

Kotlin

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

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

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 कंसोल के DevOps और ऑडियंस की दिलचस्पी > Crashlytics डैशबोर्ड में, अपनी सभी समस्याएं देखी जा सकती हैं.

Crashlytics

समस्याओं का पता लगाने के लिए, log का इस्तेमाल करें. उदाहरण के लिए:

Kotlin

Firebase.crashlytics.log("message")

Java

FirebaseCrashlytics.getInstance().log("message");

यूज़र आइडेंटिफ़ायर सेट करना

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

अपनी रिपोर्ट में यूज़र आईडी जोड़ने के लिए, हर उपयोगकर्ता को आईडी नंबर, टोकन या हैश की गई वैल्यू के तौर पर एक यूनीक आइडेंटिफ़ायर असाइन करें:

Kotlin

Firebase.crashlytics.setUserId("user123456789")

Java

FirebaseCrashlytics.getInstance().setUserId("user123456789");

अगर आपको यूज़र आइडेंटिफ़ायर सेट करने के बाद उसे मिटाना है, तो वैल्यू को खाली स्ट्रिंग पर रीसेट करें. यूज़र आइडेंटिफ़ायर मिटाने से, मौजूदा Crashlytics रिकॉर्ड नहीं हटते. अगर आपको किसी यूज़र आईडी से जुड़े रिकॉर्ड मिटाने हैं, तो Firebase की सहायता टीम से संपर्क करें.

(सिर्फ़ Android NDK) NDK से जुड़ी ऐप्लिकेशन बंद होने की रिपोर्ट में मेटाडेटा जोड़ना

आपके पास C++ कोड में, crashlytics.h हेडर शामिल करने का विकल्प होता है. इससे NDK से जुड़ी ऐप्लिकेशन बंद होने की रिपोर्ट में मेटाडेटा जोड़ा जा सकता है. जैसे, कस्टम बटन, कस्टम लॉग, यूज़र आइडेंटिफ़ायर. इन सभी विकल्पों के बारे में, इस पेज पर ऊपर बताया गया है.

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

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

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

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

Firebase कंसोल के DevOps और ऑडियंस की दिलचस्पी > Crashlytics डैशबोर्ड में, इस डेटा के साथ ये काम किए जा सकते हैं:

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

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

अगर आपने अपने ऐप्लिकेशन में GWP-ASan को साफ़ तौर पर चालू किया है और NDK के लिए Crashlytics SDK टूल का v18.3.6 या इसके बाद वाला वर्शन (Firebase BoM v31.3.0 या इसके बाद वाला वर्शन) इस्तेमाल किया है, तो आपको GWP-ASan की मेमोरी रिपोर्ट मिल सकती हैं. Android के दस्तावेज़ में दिए गए, नेटिव कोड के उदाहरण का इस्तेमाल करके, GWP-ASan के सेटअप की जांच की जा सकती है.

नुकसान न पहुंचाने वाली गड़बड़ी की रिपोर्ट करना

Crashlytics, आपके ऐप्लिकेशन के बंद होने की रिपोर्ट अपने-आप करता है. इसके अलावा, यह Crashlytics ऐप्लिकेशन बंद न होने की वजह से होने वाली गड़बड़ियों को भी रिकॉर्ड करता है और अगली बार ऐप्लिकेशन लॉन्च होने पर, आपको उनकी रिपोर्ट भेजता है.

अपने ऐप्लिकेशन के catch ब्लॉक में, नुकसान न पहुंचाने वाली गड़बड़ी को रिकॉर्ड करने के लिए, recordException तरीके का इस्तेमाल करें. उदाहरण के लिए:

Kotlin

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
}

इसके अलावा, ऐप्लिकेशन बंद न होने की वजह से होने वाली किसी खास गड़बड़ी के साथ, कस्टम बटन भी जोड़े जा सकते हैं. उदाहरण के लिए:

Kotlin

try {
    methodThatThrows()
} catch (e: Exception) {
    Firebase.crashlytics.recordException(e) {
        key("string key", "string value")
        key("boolean key", true)
        key("float key", Float.MAX_VALUE)
    }
    // handle your exception here
}

Java

try {
    methodThatThrows();
} catch (Exception e) {
    CustomKeysAndValues keysAndValues = new CustomKeysAndValues.Builder()
            .putString("string key", "string value")
            .putBoolean("boolean key", true)
            .putFloat("float key", Float.MAX_VALUE)
            .build();
    FirebaseCrashlytics.getInstance().recordException(e, keysAndValues);
    // handle your exception here
}

रिकॉर्ड की गई सभी गड़बड़ियां, DevOps और ऑडियंस की दिलचस्पी > Crashlytics डैशबोर्ड में, नुकसान न पहुंचाने वाली गड़बड़ी के तौर पर दिखती हैं.Firebase समस्या की खास जानकारी में, ऐप्लिकेशन बंद होने की वजह से मिलने वाली सभी जानकारी शामिल होती है. इसके अलावा, Android के वर्शन और हार्डवेयर डिवाइस के हिसाब से ब्रेकडाउन भी शामिल होता है.

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

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

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

ब्रेडक्रंब लॉग, Google Analytics की मदद से जनरेट होते हैं. इसलिए, ब्रेडक्रंब लॉग पाने के लिए, आपको अपने Firebase प्रोजेक्ट के लिए Google Analytics चालू करना होगा. साथ ही, अपने ऐप्लिकेशन में Google Analytics के लिए Firebase SDK टूल जोड़ना होगा. इन ज़रूरी शर्तों को पूरा करने के बाद, किसी समस्या की जानकारी देखते समय, **लॉग** टैब में, इवेंट के डेटा के साथ ब्रेडक्रंब लॉग अपने-आप शामिल हो जाते हैं. Firebase कंसोल के **DevOps और ऑडियंस की दिलचस्पी** > **Crashlytics** डैशबोर्ड में, अपनी सभी समस्याएं देखी जा सकती हैं.Google AnalyticsCrashlyticsFirebase

Analytics SDK अपने-आप screen_view इवेंट को लॉग करता है. इससे ब्रेडक्रंब लॉग में, ऐप्लिकेशन बंद होने, नुकसान न पहुंचाने वाली गड़बड़ी या एएनआर इवेंट से पहले देखी गई स्क्रीन की सूची दिखती है. screen_view ब्रेडक्रंब लॉग में, firebase_screen_class पैरामीटर शामिल होता है.

ब्रेडक्रंब लॉग में, उपयोगकर्ता के सेशन में मैन्युअल तरीके से लॉग किए गए सभी कस्टम इवेंट भी शामिल होते हैं. इनमें इवेंट का पैरामीटर डेटा भी शामिल होता है. इस डेटा से, ऐप्लिकेशन बंद होने, नुकसान न पहुंचाने वाली गड़बड़ी या एएनआर इवेंट से पहले, उपयोगकर्ता की कार्रवाइयों की सीरीज़ दिखाई जा सकती है.

ध्यान दें कि डेटाGoogle Analytics को इकट्ठा करने और इस्तेमाल करने की सुविधा को कंट्रोल किया जा सकता है, इसमें, ब्रेडक्रंब लॉग में शामिल डेटा भी शामिल है.

ऑप्ट-इन रिपोर्टिंग की सुविधा चालू करना

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

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

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

    Kotlin

    Firebase.crashlytics.setCrashlyticsCollectionEnabled(true)

    Java

    FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);

    अगर उपयोगकर्ता बाद में डेटा कलेक्शन से ऑप्ट-आउट करता है, तो ओवरराइड की वैल्यू के तौर पर false पास किया जा सकता है. यह वैल्यू, उपयोगकर्ता के अगली बार ऐप्लिकेशन लॉन्च करने पर लागू होगी और उस उपयोगकर्ता के लिए, ऐप्लिकेशन के सभी लॉन्च के दौरान बनी रहेगी.

Crash Insights के डेटा को मैनेज करना

Crash Insights, आपकी गुमनाम स्टैक ट्रेस की तुलना, Firebase के अन्य ऐप्लिकेशन के ट्रेस से करके, समस्याओं को हल करने में आपकी मदद करता है. साथ ही, यह आपको बताता है कि आपकी समस्या, किसी बड़े ट्रेंड का हिस्सा है या नहीं. कई समस्याओं के लिए, Crash Insights, ऐप्लिकेशन बंद होने की समस्या को डीबग करने में आपकी मदद करने के लिए संसाधन भी उपलब्ध कराता है.

Crash Insights, स्थिरता से जुड़े सामान्य ट्रेंड की पहचान करने के लिए, ऐप्लिकेशन बंद होने के एग्रीगेट किए गए डेटा का इस्तेमाल करता है. अगर आपको अपने ऐप्लिकेशन का डेटा शेयर नहीं करना है, तो कंसोल के DevOps और जुड़ाव > Crashlytics डैशबोर्ड में, समस्या की सूची में सबसे ऊपर मौजूद Crash Insights मेन्यू में जाकर, Crash Insights से बाहर हुआ जा सकता है.Firebase

अगले चरण

  • अपने डेटा को BigQuery या Cloud Logging में एक्सपोर्ट करें, ताकि उसे गहराई से समझा जा सके और डेटा को क्वेरी करने, कस्टम डैशबोर्ड बनाने, और कस्टम अलर्ट सेट अप करने जैसी सुविधाओं का इस्तेमाल किया जा सके.