| प्लैटफ़ॉर्म चुनें: | iOS+ Android Flutter Unity |
डिफ़ॉल्ट रूप से, Firebase Crashlytics आपकी डीबग सिंबल (dSYM) फ़ाइलों को अपने-आप प्रोसेस करता है. इससे आपको क्रैश की ऐसी रिपोर्ट मिलती हैं जिन्हें डिकोड किया गया है और आसानी से पढ़ा जा सकता है. आम तौर पर, इस सुविधा को अपने ऐप्लिकेशन में Crashlytics के शुरुआती सेटअप के दौरान कॉन्फ़िगर किया जाता है. खास तौर पर, रन स्क्रिप्ट जोड़कर ऐसा किया जाता है. इससे आपके ऐप्लिकेशन के बिल्ड फ़ेज़ के दौरान, dSYM फ़ाइलें अपने-आप अपलोड हो जाती हैं.
हालांकि, कुछ मामलों में dSYM फ़ाइलें अपने-आप अपलोड नहीं हो पातीं. इस गाइड में, समस्या हल करने के कुछ तरीके बताए गए हैं. इनका इस्तेमाल तब किया जा सकता है, जब Crashlytics को आपके ऐप्लिकेशन की dSYM फ़ाइलें न मिलें.
पक्का करें कि Xcode, dSYM को अपने-आप प्रोसेस कर सके और फ़ाइलें अपलोड कर सके
अपने ऐप्लिकेशन में Crashlytics को सेट अप करते समय, आपने dSYM को अपने-आप प्रोसेस करने और फ़ाइलों को अपलोड करने के लिए, रन स्क्रिप्ट को कॉन्फ़िगर किया.
पक्का करें कि Crashlytics रन स्क्रिप्ट के लिए आपका कॉन्फ़िगरेशन, Xcode 15 के साथ शुरू हुई नई ज़रूरी शर्तों के मुताबिक अप-टू-डेट हो. अगर आपका कॉन्फ़िगरेशन अप-टू-डेट नहीं है, तो आपको यह गड़बड़ी दिख सकती है:
error: Info.plist Error Unable to process Info.plist at path ....
खास तौर पर, Xcode 15 और इसके बाद के वर्शन के लिए, आपको फ़ाइल की जगहों का ज़्यादा सटीक सेट देना होगा. Crashlytics रन स्क्रिप्ट (firebase-ios-sdk/Crashlytics/run) के लिए, पक्का करें कि आपके पास यह सेटअप हो:
Build Phases टैब पर क्लिक करें. इसके बाद, Run Script सेक्शन को बड़ा करें.
Input Files सेक्शन में, पक्का करें कि आपके पास इन फ़ाइलों की जगहों के पाथ हों:
${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, dSYM जनरेट कर रहा है या नहीं
ज़्यादातर मामलों में, dSYM फ़ाइलें मौजूद नहीं होती हैं, क्योंकि Xcode उन्हें जनरेट नहीं करता. अपलोड न हो पाने पर, Crashlytics Firebase कंसोल में "dSYM मौजूद नहीं है" चेतावनी दिखाता है. अगर आपको यह सूचना मिलती है, तो पहले यह जांच लें कि Xcode हर बिल्ड के लिए सही dSYM जनरेट कर रहा है या नहीं:
Xcode में अपना प्रोजेक्ट खोलें. इसके बाद, Xcode नेविगेटर में प्रोजेक्ट फ़ाइल चुनें.
अपना मुख्य बिल्ड टारगेट चुनें.
टारगेट का Build Settings टैब खोलें. इसके बाद, All पर क्लिक करें.
debug information formatखोजें.अपने सभी बिल्ड टाइप के लिए, डीबग करने की जानकारी के फ़ॉर्मैट को dSYM फ़ाइल के साथ DWARF पर सेट करें.
अपने ऐप्लिकेशन को फिर से बनाएं.
अब आपको क्रैश की रिपोर्ट, Crashlytics डैशबोर्ड में दिखेंगी. अगर समस्या बनी रहती है या आपको अन्य गड़बड़ियां दिखती हैं, तो अपने dSYM ढूंढें और उन्हें Crashlytics पर मैन्युअल तरीके से अपलोड करें.
लोकल मशीन पर अपने dSYM ढूंढना
अपनी मशीन पर सभी dSYM के यूयूआईडी दिखाने और मौजूद नहीं होने वाले dSYM को खोजने के लिए, यह कमांड चलाएं:
mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done
dSYM फ़ाइल मिलने के बाद, उसे Crashlytics पर मैन्युअल तरीके से अपलोड करें.
अगर mdfind कमांड से कोई नतीजा नहीं मिलता है, तो उस Products डायरेक्ट्री में देखें जहां आपका .app मौजूद है. डिफ़ॉल्ट रूप से, Products डायरेक्ट्री Derived Data में मौजूद होती है. अगर आपका ऐप्लिकेशन प्रोडक्शन के लिए रिलीज़ हो गया है, तो डिस्क पर .xcarchive डायरेक्ट्री में भी dSYM को ढूंढा जा सकता है:
Xcode में, Organizer विंडो खोलें. इसके बाद, सूची से अपना ऐप्लिकेशन चुनें. Xcode, आपके प्रोजेक्ट के लिए संग्रह की सूची दिखाता है.
किसी संग्रह को Finder में देखने के लिए, उस पर Control-क्लिक करें. इस पर फिर से Control-क्लिक करें. इसके बाद, Show Package Contents पर क्लिक करें.
.xcarchiveमें एक dSYMs डायरेक्ट्री होती है. इसमें Xcode की संग्रह करने की प्रोसेस के हिस्से के तौर पर जनरेट किए गए dSYMs होते हैं.
अपने dSYM अपलोड करना
Crashlytics में dSYM फ़ाइलों को अपलोड करने के कई तरीके हैं. इन्हें अपने-आप या मैन्युअल तरीके से अपलोड किया जा सकता है.
(सुझाया गया) dSYM को अपने-आप प्रोसेस करना और फ़ाइलें अपलोड करना
Crashlytics को पहली बार सेट अप करते समय, आपने अपने ऐप्लिकेशन के लिए, अपने-आप अपलोड होने की इस सुविधा को कॉन्फ़िगर किया होगा. हालांकि, अगर अपने-आप अपलोड होने की सुविधा काम नहीं कर रही है, तो देखें कि आपका कॉन्फ़िगरेशन सही है या नहीं.
dSYM फ़ाइलों को मैन्युअल तरीके से अपलोड करना
अगर अपने-आप अपलोड होने की सुविधा काम नहीं कर रही है, तो dSYM फ़ाइलों को मैन्युअल तरीके से अपलोड किया जा सकता है. इसके लिए, इनमें से कोई एक विकल्प चुनें.
पहला विकल्प: Firebase कंसोल में "खींचें और छोड़ें" इंटरफ़ेस का इस्तेमाल करके, dSYM फ़ाइलों वाली zip फ़ाइल अपलोड करें. इसके लिए, DevOps और यूज़र ऐक्टिविटी > Crashlytics डैशबोर्ड > dSYMs टैब पर जाएं.
दूसरा विकल्प:
upload-symbolsस्क्रिप्ट का इस्तेमाल करें. इसे बिल्ड प्रोसेस के दौरान कहीं से भी कॉल करके, dSYM फ़ाइलों को मैन्युअल तरीके से अपलोड किया जा सकता है.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चलाएं.