| प्लैटफ़ॉर्म चुनें: | iOS+ Android Flutter Unity |
डिफ़ॉल्ट रूप से, Firebase Crashlytics डीबग सिंबल (डीएसवाईएम) वाली आपकी फ़ाइलों को अपने-आप प्रोसेस करता है. इससे आपको क्रैश की रिपोर्ट, डिकोड की गई और आसानी से पढ़ी जा सकने वाली फ़ॉर्मैट में मिलती हैं. आम तौर पर, अपने ऐप्लिकेशन में Crashlytics को पहली बार सेट अप करते समय, इस सेटिंग को कॉन्फ़िगर किया जाता है. इसके लिए, एक रन स्क्रिप्ट जोड़ी जाती है. यह स्क्रिप्ट, आपके ऐप्लिकेशन के बिल्ड फ़ेज़ के दौरान, डीएसवाईएम फ़ाइलों को अपने-आप अपलोड करती है.
अफ़सोस की बात है कि कुछ मामलों में, डीएसवाईएम फ़ाइलों के अपने-आप अपलोड होने में गड़बड़ी हो सकती है. इस गाइड में, Crashlytics के आपके ऐप्लिकेशन की डीएसवाईएम फ़ाइलों का पता न लगा पाने पर, समस्या हल करने के कुछ तरीके बताए गए हैं.
पक्का करें कि Xcode, डीएसवाईएम को अपने-आप प्रोसेस कर सके और फ़ाइलें अपलोड कर सके
अपने ऐप्लिकेशन में Crashlytics सेट अप करते समय, आपने एक रन स्क्रिप्ट कॉन्फ़िगर की थी . यह स्क्रिप्ट, डीएसवाईएम को अपने-आप प्रोसेस करती है और फ़ाइलें अपलोड करती है.
पक्का करें कि Crashlytics की रन स्क्रिप्ट के लिए आपका कॉन्फ़िगरेशन,
Xcode 15 से शुरू हुई नई ज़रूरी शर्तों के मुताबिक हो. अगर आपका
कॉन्फ़िगरेशन अप-टू-डेट नहीं है, तो आपको यह गड़बड़ी मिल सकती है:
error: Info.plist Error Unable to process Info.plist at path ....
खास तौर पर, Xcode 15 और इसके बाद के वर्शन के लिए, आपको फ़ाइल की जगहों के बारे में ज़्यादा जानकारी देनी होगी. आपकी Crashlytics रन स्क्रिप्ट
(firebase-ios-sdk/Crashlytics/run) के लिए, पक्का करें कि आपने यह सेटअप किया हो:
बिल्ड फ़ेज़ टैब पर क्लिक करें. इसके बाद, रन स्क्रिप्ट सेक्शन को बड़ा करें.
इनपुट फ़ाइलें सेक्शन में, पक्का करें कि आपके पास इन फ़ाइलों की जगहों के पाथ हों:
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist$(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
अगर आपके प्रोजेक्ट की बिल्ड सेटिंग में$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
ENABLE_USER_SCRIPT_SANDBOXING=YESऔरENABLE_DEBUG_DYLIB=YESहै, तो यह शामिल करें:${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib
देखें कि Xcode, डीएसवाईएम जनरेट कर रहा है या नहीं
ज़्यादातर मामलों में, डीएसवाईएम फ़ाइलें इसलिए गायब हो जाती हैं, क्योंकि Xcode उन्हें जनरेट नहीं कर रहा होता. अपलोड में गड़बड़ी होने पर, Crashlytics "डीएसवाईएम मौजूद नहीं है" की चेतावनी Firebase कंसोल में दिखाता है. अगर आपको यह चेतावनी मिलती है, तो सबसे पहले यह देखें कि Xcode, हर बिल्ड के लिए सही डीएसवाईएम जनरेट कर रहा है या नहीं:
Xcode में अपना प्रोजेक्ट खोलें. इसके बाद, Xcode नेविगेटर में प्रोजेक्ट फ़ाइल चुनें.
अपना मुख्य बिल्ड टारगेट चुनें.
टारगेट का बिल्ड सेटिंग टैब खोलें. इसके बाद, सभी पर क्लिक करें.
debug information formatखोजें.अपने सभी बिल्ड टाइप के लिए, डीबग इन्फ़ॉर्मेशन फ़ॉर्मैट को डीएसवाईएम फ़ाइल के साथ DWARF पर सेट करें.
अपने ऐप्लिकेशन को फिर से बनाएं.
अब आपको क्रैश की रिपोर्ट, Crashlytics डैशबोर्ड में दिखनी चाहिए. अगर समस्या बनी रहती है या आपको अन्य गड़बड़ियां दिखती हैं, तो अपने डीएसवाईएम ढूंढने की कोशिश करें और उन्हें मैन्युअल तरीके से अपलोड करें.Crashlytics
लोकल मशीन पर अपने डीएसवाईएम ढूंढना
अपनी मशीन पर अपने सभी डीएसवाईएम के यूयूआईडी दिखाने और गायब डीएसवाईएम को खोजने के लिए, यह कमांड चलाएं:
mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done
डीएसवाईएम मिलने के बाद, उसे मैन्युअल तरीके से Crashlytics पर अपलोड करें.
अगर mdfind कमांड से कोई नतीजा नहीं मिलता है, तो Products डायरेक्ट्री में देखें. यहां आपका .app मौजूद होता है. डिफ़ॉल्ट रूप से, Products डायरेक्ट्री, Derived Data में मौजूद होती है. अगर आपका ऐप्लिकेशन प्रोडक्शन के लिए रिलीज़ किया गया है, तो डिस्क पर .xcarchive डायरेक्ट्री में भी उसका डीएसवाईएम देखा जा सकता है:
Xcode में, ऑर्गनाइज़र विंडो खोलें. इसके बाद, सूची में से अपना ऐप्लिकेशन चुनें. Xcode, आपके प्रोजेक्ट के लिए संग्रहों की सूची दिखाता है.
किसी संग्रह को Finder में देखने के लिए, Control दबाकर उस पर क्लिक करें. Control दबाकर उस पर फिर से क्लिक करें. इसके बाद, पैकेज का कॉन्टेंट दिखाएं पर क्लिक करें.
.xcarchiveमें एक डीएसवाईएम डायरेक्ट्री होती है. इसमें, Xcode की संग्रह प्रोसेस के तहत जनरेट किए गए डीएसवाईएम होते हैं.
अपने डीएसवाईएम अपलोड करना
Crashlytics डीएसवाईएम फ़ाइलों को अपलोड करने के कई तरीके उपलब्ध कराता है. इन्हें अपने-आप या मैन्युअल तरीके से अपलोड किया जा सकता है.
(सुझाया गया) डीएसवाईएम को अपने-आप प्रोसेस करना और फ़ाइलें अपलोड करना
डीएसवाईएम फ़ाइलों को मैन्युअल तरीके से अपलोड करना
अगर अपलोड अपने-आप नहीं हो रहे हैं, तो डीएसवाईएम फ़ाइलों को मैन्युअल तरीके से अपलोड किया जा सकता है. इसके लिए, इनमें से कोई एक विकल्प इस्तेमाल करें.
पहला विकल्प: डीएसवाईएम फ़ाइलों वाली zip फ़ाइल अपलोड करने के लिए, Firebase कंसोल में "खींचें और छोड़ें" इंटरफ़ेस का इस्तेमाल करें. इसके लिए, DevOps और उपयोगकर्ता जुड़ाव > Crashlytics डैशबोर्ड > डीएसवाईएम टैब पर जाएं.
दूसरा विकल्प:
upload-symbolsस्क्रिप्ट का इस्तेमाल करें. इसे अपने बिल्ड प्रोसेस में कहीं से भी कॉल किया जा सकता है. इससे डीएसवाईएम फ़ाइलों को मैन्युअल तरीके से अपलोड किया जा सकता है.upload-symbolsस्क्रिप्ट चलाने के लिए, इनमें से कोई एक विकल्प इस्तेमाल करें:पहला विकल्प: अपने बिल्ड प्रोसेस में यह लाइन शामिल करें:
find dSYM_DIRECTORY -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p PLATFORM \{\}
दूसरा विकल्प: स्क्रिप्ट को सीधे अपने टर्मिनल से चलाएं:
/PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs
इस स्क्रिप्ट के इस्तेमाल से जुड़ी जानकारी और अन्य निर्देश पाने के लिए,
--helpपैरामीटर के साथupload-symbolsचलाएं.