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 के लिए बनी गाइड देखें.