Crashlytics डैशबोर्ड में जाकर, क्रैश रिपोर्ट आसानी से पढ़ी जा सकती हैं


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

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

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

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

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

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

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

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

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

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