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

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


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

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

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

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

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

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

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

  2. यह पता लगाएं कि क्या [firebase_crashlytics] Crashlytics Upload Symbols नाम की कोई रन स्क्रिप्ट, बिल्ड फ़ेज़ के Runner टारगेट में जोड़ी गई है.

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

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

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

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

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 (v.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 के लिए, धुंधली की गई रिपोर्ट से जुड़ी समस्याओं को हल करने की गाइड देखें.