Crashlytics डैशबोर्ड (Flutter) में आसानी से पढ़ी जा सकने वाली क्रैश रिपोर्ट पाना

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


डिफ़ॉल्ट रूप से, Firebase Crashlytics आपके Flutter प्रोजेक्ट को अपने-आप इंस्ट्रूमेंट करता है, ताकि ज़रूरी सिंबल फ़ाइलें अपलोड की जा सकें. इससे यह पक्का होता है कि क्रैश रिपोर्ट को डीऑब्फ़स्केट किया जाए और वे लोगों को पढ़ने में आसान हों.

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

Apple के प्लैटफ़ॉर्म

dSYM फ़ाइलें अपलोड करने के लिए, अपने कॉन्फ़िगरेशन की जांच करना

Crashlytics Flutter प्लग इन जोड़ने और flutterfire configure कमांड चलाने पर, आपके प्रोजेक्ट के Xcode वर्कस्पेस में रन स्क्रिप्ट जोड़ने की कोशिश की जाएगी. यह स्क्रिप्ट, ज़रूरी dSYM सिंबल फ़ाइलें ढूंढकर उन्हें पर अपलोड करती है.Crashlytics इन फ़ाइलों के बिना, आपको Crashlytics डैशबोर्ड में "dSYM मौजूद नहीं है" का अलर्ट दिखेगा. साथ ही, जब तक ये फ़ाइलें अपलोड नहीं हो जातीं, तब तक बैकएंड में अपवाद मौजूद रहेंगे.

अगर आपको यह समस्या आ रही है, तो सबसे पहले पक्का करें कि आपने रन स्क्रिप्ट इंस्टॉल की हो:

  1. अपने प्रोजेक्ट की iOS डायरेक्ट्री (FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace) में, Xcode वर्कस्पेस फ़ाइल ढूंढें और उसे खोलें.

  2. यह देखें कि Runner टारगेट के Build Phases में, [firebase_crashlytics] Crashlytics Upload Symbols नाम की कोई रन स्क्रिप्ट जोड़ी गई है या नहीं.

    नीचे दिया गया सेक्शन देखें. इससे आपको यह पता चलेगा कि रन स्क्रिप्ट मौजूद है या नहीं. या रन स्क्रिप्ट मौजूद है.

Flutter और Crashlytics के वर्शन कॉन्फ़िगरेशन की जांच करना (अगर --split-debug-info फ़्लैग का इस्तेमाल किया जा रहा है, तो)

अगर आपका Flutter प्रोजेक्ट, --split-debug-info फ़्लैग (और, ज़रूरत पड़ने पर, --obfuscate फ़्लैग) का इस्तेमाल करता है, तो आपके ऐप्लिकेशन के लिए, स्टैक ट्रेस को पढ़ने लायक बनाने के लिए, अतिरिक्त चरण पूरे करने होंगे.

पक्का करें कि आपका प्रोजेक्ट, सुझाए गए वर्शन कॉन्फ़िगरेशन (Flutter 3.12.0 और इसके बाद का वर्शन और Crashlytics Flutter प्लग इन 3.3.4 और इसके बाद का वर्शन) का इस्तेमाल कर रहा हो, ताकि आपका प्रोजेक्ट Flutter सिंबल (dSYM फ़ाइलें) को Crashlytics पर अपने-आप जनरेट और अपलोड कर सके.

Android

डिपेंडेंसी कॉन्फ़िगरेशन की जांच करना

flutterfire configure कमांड, आपके प्रोजेक्ट की Gradle बिल्ड फ़ाइलों में ज़रूरी डिपेंडेंसी जोड़ने की कोशिश करता है. इन डिपेंडेंसी के बिना, क्रैश रिपोर्ट, Firebase कंसोल में ऑब्फ़स्केट की जा सकती हैं. ऐसा तब हो सकता है, जब ऑब्फ़स्केशन की सुविधा चालू हो.

पक्का करें कि प्रोजेक्ट-लेवल build.gradle और ऐप्लिकेशन-लेवल build.gradle में ये लाइनें मौजूद हों:

  • प्रोजेक्ट-लेवल बिल्ड फ़ाइल (android/build.gradle) में, यह लाइन देखें:

    dependencies {
    // ... other dependencies
    
    classpath 'com.google.gms:google-services:4.3.5'
    classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
    }
  • ऐप्लिकेशन-लेवल बिल्ड फ़ाइल (android/app/build.gradle) में, यह लाइन देखें:

    // ... other imports
    
    android {
    // ... your android config
    }
    
    dependencies {
    // ... your dependencies
    }
    
    // This section must appear at the bottom of the file
    apply plugin: 'com.google.gms.google-services'
    apply plugin: 'com.google.firebase.crashlytics'

यह देखना कि Flutter सिंबल अपलोड करने के लिए, सीएलआई का इस्तेमाल किया जा रहा है या नहीं (अगर --split-debug-info फ़्लैग का इस्तेमाल किया जा रहा है, तो)

अगर आपका Flutter प्रोजेक्ट, --split-debug-info फ़्लैग (और, ज़रूरत पड़ने पर, --obfuscate फ़्लैग) का इस्तेमाल करता है, तो आपके ऐप्लिकेशन के लिए, स्टैक ट्रेस को पढ़ने लायक बनाने के लिए, अतिरिक्त चरण पूरे करने होंगे.

Flutter के डीबग सिंबल अपलोड करने के लिए, Firebase CLI (वर्शन 11.9.0 और इसके बाद का वर्शन) का इस्तेमाल करें. ऑब्फ़स्केट किए गए कोड बिल्ड से क्रैश की रिपोर्ट करने से पहले, आपको डीबग सिंबल अपलोड करने होंगे.

अपने Flutter प्रोजेक्ट की रूट डायरेक्ट्री से, यह कमांड चलाएं:

firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
  • FIREBASE_APP_ID: Firebase के Android ऐप्लिकेशन का आईडी (पैकेज का नाम नहीं)
    Firebase के Android ऐप्लिकेशन आईडी का उदाहरण: 1:567383003300:android:17104a2ced0c9b9b

  • PATH/TO/symbols: वही डायरेक्ट्री जिसे ऐप्लिकेशन बनाते समय, --split-debug-info फ़्लैग में पास किया जाता है

अगर समस्याएं बनी रहती हैं, तो ऑब्फ़स्केट की गई रिपोर्ट से जुड़ी समस्याओं को हल करने के लिए, Android के लिए बनी खास गाइड देखें.