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