Crashlytics डैशबोर्ड (Flutter) में आसानी से पढ़ी जा सकने वाली क्रैश रिपोर्ट पाना
संग्रह की मदद से व्यवस्थित रहें
अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.
डिफ़ॉल्ट रूप से, Firebase Crashlytics आपके Flutter प्रोजेक्ट को अपने-आप इंस्ट्रुमेंट करता है, ताकि ज़रूरी सिंबल फ़ाइलें अपलोड की जा सकें. इससे यह पक्का होता है कि क्रैश रिपोर्ट को डीऑब्फ़स्केट किया गया है और उसे आसानी से पढ़ा जा सकता है.
माफ़ करें, कुछ मामलों में प्रोजेक्ट को पूरी तरह से कॉन्फ़िगर नहीं किया जा सकता. इस गाइड में बताया गया है कि ऑटोमेशन क्या करता है. साथ ही, इसमें प्रोजेक्ट सेटअप की गड़बड़ियों को ठीक करने के शुरुआती चरण बताए गए हैं.
Apple के प्लैटफ़ॉर्म
डीएसवाईएम फ़ाइलें अपलोड करने के लिए, अपने कॉन्फ़िगरेशन की जांच करना
Crashlytics Flutter प्लगिन जोड़ने और flutterfire configure कमांड चलाने पर, आपके प्रोजेक्ट के Xcode वर्कस्पेस में एक रन स्क्रिप्ट जोड़ने की कोशिश की जाएगी. यह स्क्रिप्ट, ज़रूरी dSYM सिंबल फ़ाइलें ढूंढकर उन्हें Crashlytics पर अपलोड करती है. इन फ़ाइलों के बिना, आपको Crashlytics डैशबोर्ड में "dSYM फ़ाइल मौजूद नहीं है" सूचना दिखेगी. साथ ही, जब तक ये फ़ाइलें अपलोड नहीं की जातीं, तब तक बैकएंड में अपवादों को रोका जाएगा.
अगर आपको यह समस्या आ रही है, तो पहले पक्का करें कि आपने रन स्क्रिप्ट इंस्टॉल की हो:
अपने प्रोजेक्ट की iOS डायरेक्ट्री (FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace) में Xcode वर्कस्पेस फ़ाइल ढूंढें और उसे खोलें.
यह पता लगाएं कि क्या [firebase_crashlytics] Crashlytics Upload Symbols नाम की कोई रन स्क्रिप्ट, बिल्ड फ़ेज़ के Runner टारगेट में जोड़ी गई है.
dSYM अपने-आप अपलोड करने के लिए स्क्रिप्ट मौजूद नहीं है
अगर यह रन स्क्रिप्ट मौजूद नहीं है, तो इसे मैन्युअल तरीके से जोड़ा जा सकता है:
अपने Apple ऐप्लिकेशन के लिए Firebase ऐप्लिकेशन आईडी ढूंढें. यहां दो अलग-अलग जगहों के बारे में बताया गया है, जहां आपको यह आईडी मिल सकता है:
Firebase कंसोल में, अपने settings > प्रोजेक्ट सेटिंग पर जाएं.
आपके ऐप्लिकेशन कार्ड पर जाएं. इसके बाद, अपने Firebase Apple ऐप्लिकेशन पर क्लिक करके, ऐप्लिकेशन की जानकारी देखें. इसमें ऐप्लिकेशन आईडी भी शामिल है.
अपने Flutter प्रोजेक्ट की टॉप-लेवल डायरेक्ट्री में, अपनी firebase_options.dart फ़ाइल ढूंढें. आपके Apple ऐप्लिकेशन का Firebase ऐप्लिकेशन आईडी, appId के तौर पर लेबल किया गया है.
add >
New Run Script Phase पर क्लिक करें.
पक्का करें कि यह नया Run Script फ़ेज़, आपके प्रोजेक्ट का आखिरी बिल्ड फ़ेज़ हो. ऐसा न करने पर, Crashlytics dSYM को सही तरीके से प्रोसेस नहीं कर पाएगा.
नए स्क्रिप्ट चलाएं सेक्शन को बड़ा करें.
स्क्रिप्ट फ़ील्ड में (यह शेल लेबल के नीचे मौजूद होता है), यहां दी गई रन स्क्रिप्ट जोड़ें.
ये स्क्रिप्ट, आपकी dSYM फ़ाइलों को प्रोसेस करती हैं और उन्हें Crashlytics पर अपलोड करती हैं.
FIREBASE_APP_ID: आपका Firebase Apple ऐप्लिकेशन आईडी (आपका Apple बंडल आईडी नहीं)
Firebase Apple ऐप्लिकेशन आईडी का उदाहरण: 1:1234567890:ios:321abc456def7890
क्या आपको अपना Firebase ऐप्लिकेशन आईडी ढूंढना है?
Firebase ऐप्लिकेशन आईडी ढूंढने के दो तरीके यहां दिए गए हैं:
आपकी GoogleService-Info.plist फ़ाइल में, आपका ऐप्लिकेशन आईडी, GOOGLE_APP_ID वैल्यू है; या
Firebase कंसोल में, अपनी प्रोजेक्ट सेटिंग पर जाएं.
आपके ऐप्लिकेशन कार्ड पर जाएं. इसके बाद, ऐप्लिकेशन आईडी ढूंढने के लिए, उस Firebase ऐप्लिकेशन पर क्लिक करें.
इनपुट फ़ाइलें सेक्शन में, यहां दी गई फ़ाइलों के पाथ जोड़ें:
जानें कि इन फ़ाइलों की जगहों की जानकारी क्यों ज़रूरी है
Xcode, इन इनपुट फ़ाइलों को तय की गई जगहों पर ढूंढता है, ताकि यह पक्का किया जा सके कि रन स्क्रिप्ट के लिए बिल्ड फ़ाइलें उपलब्ध हैं. इसके अलावा, अगर User Script Sandboxing चालू है, तो Xcode सिर्फ़ रन स्क्रिप्ट को Input Files में बताई गई फ़ाइलों को ऐक्सेस करने की अनुमति देता है.
अपने प्रोजेक्ट की dSYM फ़ाइलों की जगह की जानकारी देने से, Crashlytics को dSYM प्रोसेस करने में मदद मिलती है.
अपने ऐप्लिकेशन की बिल्ट GoogleService-Info.plist फ़ाइल की जगह की जानकारी देने से, Crashlytics को dSYM को आपके Firebase ऐप्लिकेशन से जोड़ने में मदद मिलती है.
अपने ऐप्लिकेशन के एक्ज़ीक्यूटेबल की जगह की जानकारी देने से, रन स्क्रिप्ट को एक ही dSYM के डुप्लीकेट अपलोड को रोकने में मदद मिलती है. ध्यान दें कि ऐप्लिकेशन के बाइनरी फ़ाइलें अपलोड नहीं की जाती हैं.
डीएसवाईएम अपने-आप अपलोड होने की सुविधा के लिए स्क्रिप्ट मौजूद है
अपने Apple ऐप्लिकेशन के लिए Firebase ऐप्लिकेशन आईडी ढूंढें. यहां दो अलग-अलग जगहों के बारे में बताया गया है, जहां आपको यह आईडी मिल सकता है:
Firebase कंसोल में, अपने settings > प्रोजेक्ट सेटिंग पर जाएं.
आपके ऐप्लिकेशन कार्ड पर जाएं. इसके बाद, अपने Firebase Apple ऐप्लिकेशन पर क्लिक करके, ऐप्लिकेशन की जानकारी देखें. इसमें ऐप्लिकेशन आईडी भी शामिल है.
अपने Flutter प्रोजेक्ट की टॉप-लेवल डायरेक्ट्री में, अपनी firebase_options.dart फ़ाइल ढूंढें. आपके Apple ऐप्लिकेशन का Firebase ऐप्लिकेशन आईडी, appId के तौर पर लेबल किया गया है.
upload-symbols स्क्रिप्ट चलाते समय, -gsp /path/to/GoogleService-Info.plist के बजाय -ai FIREBASE_APPLE_APP_ID का इस्तेमाल करें.
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) में, यह लाइन देखें:
ऐप्लिकेशन-लेवल की बिल्ड फ़ाइल (android/app/build.gradle) में, यह लाइन देखें:
// ... other importsandroid{// ... your android config}dependencies{// ... your dependencies}// This section must appear at the bottom of the fileapplyplugin:'com.google.gms.google-services'applyplugin:'com.google.firebase.crashlytics'
देखें कि क्या आपने Flutter के सिंबल अपलोड करने के लिए सीएलआई का इस्तेमाल किया है (अगर --split-debug-info फ़्लैग का इस्तेमाल किया जा रहा है)
अगर आपके Flutter प्रोजेक्ट में --split-debug-info फ़्लैग का इस्तेमाल किया जाता है (और चाहें, तो --obfuscate फ़्लैग का भी इस्तेमाल किया जा सकता है), तो आपको अपने ऐप्लिकेशन के लिए, पढ़ने लायक स्टैक ट्रेस दिखाने के लिए कुछ और चरणों को पूरा करना होगा.
Flutter डीबग सिंबल अपलोड करने के लिए, Firebase CLI (v.11.9.0+) का इस्तेमाल करें. आपको कोड को उलटा-पलटा करके बनाए गए बिल्ड से क्रैश की रिपोर्ट करने से पहले, डीबग सिंबल अपलोड करने होंगे.
अपने Flutter प्रोजेक्ट की रूट डायरेक्ट्री से, यह कमांड चलाएं:
FIREBASE_APP_ID: आपका Firebase Android ऐप्लिकेशन आईडी (यह आपके पैकेज का नाम नहीं है)
Firebase Android ऐप्लिकेशन आईडी का उदाहरण: 1:567383003300:android:17104a2ced0c9b9b
क्या आपको अपना Firebase ऐप्लिकेशन आईडी ढूंढना है?
Firebase ऐप्लिकेशन आईडी ढूंढने के दो तरीके यहां दिए गए हैं:
आपकी google-services.json फ़ाइल में, आपका ऐप्लिकेशन आईडी, mobilesdk_app_id वैल्यू है; या
Firebase कंसोल में, अपनी प्रोजेक्ट सेटिंग पर जाएं.
आपके ऐप्लिकेशन कार्ड पर जाएं. इसके बाद, ऐप्लिकेशन आईडी ढूंढने के लिए, उस Firebase ऐप्लिकेशन पर क्लिक करें.
PATH/TO/symbols: वही डायरेक्ट्री जिसे ऐप्लिकेशन बनाते समय, --split-debug-info फ़्लैग में पास किया जाता है