क्रैश लॉग Xcode का प्रतीक कैसे करें?


188

Xcode 5 आयोजक के पास एक दृश्य था जो सभी क्रैश लॉग को सूचीबद्ध करेगा। और हम ड्रॉप क्रैश लॉग को यहां खींच सकते हैं। लेकिन Xcode 6 के बाद से, मुझे पता है कि उन्होंने उपकरणों को व्यवस्थित से बाहर कर दिया है और उसी के लिए एक नई विंडो है। लेकिन मुझे ऐसा स्थान नहीं मिला जहां मैं क्रैश लॉग देखता हूं जिसे मैं Xcode 5 में एक्सकोड करने के बाद ड्रैग-ड्रॉप कर देता हूं। 6. किसी को भी इसका उत्तर पता है?


3
मैंने इस महीने पहले Apple डेवलपर मंचों पर पूछा था और कभी कोई जवाब नहीं मिला। यह उपयोगी कार्यक्षमता का नुकसान है। Apple के साथ एक बग रिपोर्ट दर्ज करें जिसमें इस सुविधा को वापस लाने के लिए कहा गया है।
rmaddy

1
मैंने आईओएस और ओएसएक्स क्रैश डंप दोनों के लिए प्रतीक को हल करने के लिए सप्ताहांत में एक साथ दस्तक दी। यह अभी भी बहुत मोटा है, लेकिन यह काम करना चाहिए। github.com/agentsim/Symbolicator
टिम

4
Xcode, क्या आप सिर्फ f --- आईएनजी ऐप्पल समीक्षकों से प्रतीकात्मक क्रैश लॉग का उपयोग कर सकते हैं ... जैसा कि हम मानते हैं कि इसका शाब्दिक अर्थ है कि यह कैसे करना है?
विलियम एंट्रिएन

जवाबों:


119

ठीक है मुझे एहसास हुआ कि आप ऐसा कर सकते हैं:

  1. में Xcode > Window > Devices, एक कनेक्टेड iPhone / iPad / etc टॉप लेफ्ट सेलेक्ट करें।
  2. डिवाइस लॉग देखें
  3. सभी लॉग

आपके पास शायद बहुत सारे लॉग हैं, और बाद में अपने आयातित लॉग को ढूंढना आसान बनाने के लिए, आप बस आगे बढ़ सकते हैं और इस बिंदु पर सभी लॉग हटा सकते हैं ... जब तक कि वे आपके लिए पैसे का मतलब नहीं करते। या जब तक आप दुर्घटना का सही समय नहीं जान जाते, तब तक - वैसे भी फाइल में लिखा होना चाहिए ... मैं आलसी हूं इसलिए मैं सभी पुराने लॉग हटा देता हूं (यह वास्तव में थोड़ी देर के लिए था)।

  1. बस अपनी फ़ाइल को उस सूची में खींचें और छोड़ें। इसने मेरे लिए काम किया।

13
मुझे वही समस्या हो रही है, लेकिन यह मेरे लिए समस्या का समाधान नहीं करता है - लॉग जो मैं खींचता हूं और खिड़की में छोड़ता हूं, लेकिन प्रतीक नहीं है।
अरकाइटो

9
चाल यह है कि आपको एक डिवाइस कनेक्ट करना होगा और सूची से डिवाइस का चयन करना होगा। मुझे नहीं लगता कि यह बिना डिवाइस के संभव है।
जॉनी

59
आपकी क्रैश फ़ाइल को उस सूची में ड्रैग करने योग्य बनाने के लिए, उसमें एक्सटेंशन होना चाहिए .crash
पज__ १६'१४

7
मेरे लिए लापता कदम एक बार फ़ाइल को गिरा दिया गया था, मुझे फ़ाइल पर राइट माउस क्लिक करने की आवश्यकता थी और पुन: प्रतीक लॉग
RobCroll

6
ऑर्गनाइज़र के अंदर उस संग्रह के लिए "dSYMs डाउनलोड करें" मत भूलना।
22-17 पर 123FLO321

259

इस उत्तर को समुदाय के लिए उतना ही लिखना जितना कि स्वयं के लिए।

यदि कभी क्रैश रिपोर्ट का संकेत करने में समस्याएँ होती हैं, तो कोई भी उन्हें निम्न प्रकार से दूर कर सकता है:

  1. एक अलग फ़ोल्डर बनाएँ, प्रतिलिपि Foo.appऔर फ़ोल्डर Foo.app.dSYMमें इसी से .xcarchive.crashफ़ोल्डर में रिपोर्ट की प्रतिलिपि भी बनाएं ।

  2. TextEdit या अन्य जगहों पर क्रैश रिपोर्ट खोलें, Binary Images:अनुभाग पर जाएं, और वहां पहले पते की प्रतिलिपि बनाएँ (उदाहरण के लिए 0xd7000)।

  3. cdफ़ोल्डर में। अब आप निम्न कमांड चला सकते हैं:

    xcrun atos -o Foo.app/Foo -arch arm64 -l 0xd7000 0x0033f9bb

यह पते पर प्रतीक का प्रतीक होगा 0x0033f9bb। कृपया -archविकल्प के लिए सही मान चुनना सुनिश्चित करें ( Binary Images:अनुभाग में पहली पंक्ति से रोका जा सकता है , या Hardware Model:क्रैश रिपोर्ट और एप्लिकेशन के समर्थित आर्क से पता लगाया जा सकता है)।

आप क्रैश रिपोर्ट से सीधे आवश्यक पते (जैसे एक थ्रेड कॉल स्टैक) को एक टेक्स्ट फ़ाइल (TextEdit में, विकल्प को पकड़ कर और आवश्यक टेक्स्ट ब्लॉक, या कॉपी और कट का चयन करें) की नकल कर सकते हैं:

0x000f12fb
0x002726b7
0x0026d415
0x001f933b
0x001f86d3

अब आप इसे एक पाठ फ़ाइल में सहेज सकते हैं, उदाहरण के लिए addr.txt, और निम्न कमांड चला सकते हैं:

xcrun atos -o Foo.app/Foo -arch arm64 -l 0xd7000 -f addr.txt

यह एक ही बार में सभी पतों के लिए एक अच्छा प्रतीक देगा।

पुनश्च

उपरोक्त करने से पहले, यह जांचने योग्य है कि सब कुछ सही तरीके से सेट किया गया है (जैसा atosकि मूल रूप से किसी भी प्रदत्त पते के लिए खुशी से कुछ रिपोर्ट करेगा)।

चेकिंग करने के लिए, क्रैश रिपोर्ट खोलें, और कॉल स्टैक के अंत में जाएं Thread 0। अपने ऐप को सूचीबद्ध करने के लिए अंत से पहली पंक्ति (आमतौर पर दूसरा), जैसे:

34  Foo                    0x0033f9bb 0xd7000 + 2525627

main()कॉल होना चाहिए । 0x0033f9bbजैसा कि ऊपर वर्णित है, इस पते ( इस मामले में) को प्रतीकात्मक रूप से सूचित करना चाहिए कि यह वास्तव में है main()और कुछ यादृच्छिक विधि या कार्य नहीं है।

यदि पता नहीं है main(), तो अपने लोड पते ( -lविकल्प) और आर्क ( -archविकल्प) की जांच करें।

पी पी एस

यदि बिटकोड के कारण ऊपर काम नहीं करता है , तो iTunes कनेक्ट से अपने बिल्ड के लिए dSYM डाउनलोड करें, dSYM (फाइंडर> शो पैकेज सामग्री) से निष्पादन योग्य बाइनरी निकालें, इसे निर्देशिका में कॉपी करें, और इसे (यानी Foo) के रूप में उपयोग करें के atosबजाय तर्क Foo.app/Foo


2
मिनी xcrun ट्यूटोरियल लिखने और इसे पवित्रता जांच अनुभाग के साथ अपडेट करने की परेशानी के लिए धन्यवाद। मेरी शपथ बहुत सारे शपथ ग्रहण के बाद बच जाती है और दृष्टि में कोई प्रतीक नहीं है
एंटोन ट्रोपास्को

10
यह सत्यापित करना न भूलें कि क्रैश रिपोर्ट निष्पादन योग्य और dSYM से मेल खाती है। आप बाइनरी इमेज सेक्शन में आइडेंटिफ़ायर से मेल करके इसे चेक कर सकते हैं। इसके साथ ही रनिंग करके आपकी एक्जीक्यूटेबल फ़ाइल से लौटेxcrun dwarfdump --uuid <path to executable>
रयान सी। पायने

2
यह ध्यान रखना महत्वपूर्ण है कि आपके ऐप (फू) से केवल प्रतीक दिखाई देंगे। यह बाहरी पुस्तकालयों / रूपरेखाओं जैसे कि फाउंडेशन, या libsystem_kernel.dylib से प्रतीकों के लिए दिखाई नहीं देगा।
jlukanta

1
यह उपयोगी है, लेकिन फिर भी मेरे लिए काम नहीं करता है। जिस हिस्से से मुझे परेशानी हो रही है वह यह है कि मेरे पास 0xd7000 की जानकारी नहीं है। मेरी लाइन इस तरह दिखती है 0x100038328 __mh_execute_header + 99112. मैंने पढ़ा है कि __mh_execute_header क्या है, लेकिन मैं 0x100038328 पर कैसे जानकारी प्राप्त कर सकता हूं ??? मेरे पास बाकी सब कुछ है
skinsfan00atg

5
मैंने एक साधारण बैश स्क्रिप्ट लिखी है जो आपके लिए ज्यादातर काम करती है। उपयोग: ./symbolicate.sh mycrash.crash MyApp.app arch64 output.crash केवल यह पूरी दुर्घटना रिपोर्ट का प्रतीक होगा और आपको इसका प्रतीकात्मक संस्करण देगा। gist.github.com/nathan-fiscaletti/…
नाथन एफ।

186

आप इसे भी संदर्भित कर सकते हैं, मैंने मैनुअल क्रैश री-सिम्बॉलिकेशन की चरण प्रक्रिया द्वारा चरणबद्ध तरीके से लिखा है

क्रैश री-सिम्बॉलिकेशन

चरण 1

उपरोक्त सभी फाइलों (MyApp.app, MyApp-dSYM.dSYM और MyApp-Crash-log.crash) को एक सुविधाजनक नाम के साथ एक फ़ोल्डर में ले जाएँ जहाँ भी आप आसानी से टर्मिनल का उपयोग करके जा सकते हैं।

मेरे लिए, डेस्कटॉप सबसे आसानी से उपलब्ध जगह है;) इसलिए, मैंने इन तीन फाइलों को डेस्कटॉप पर एक फ़ोल्डर MyApp में स्थानांतरित कर दिया है।

चरण 2

अब इसके खोजक की बारी, जो भी आपके XCODE संस्करण के लिए लागू हो, उस पथ पर जाएं।

symbolicatecrashस्क्रिप्ट फ़ाइल खोजने के लिए इस कमांड का उपयोग करें ,
find /Applications/Xcode.app -name symbolicatecrash

Xcode 8, Xcode 9, Xcode 11 /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash

एक्सकोड 7.3 /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash

XCode 7 /Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash

Xcode 6 /Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources

लोअर फिर Xcode 6 Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKitBase.framework/Versions/A/Resources

या Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources

चरण 3

$PATHइस तरह से चर चर करने के लिए पाया प्रतीक चिन्ह फ़ाइल स्क्रिप्ट निर्देशिका जोड़ें : sudo vim /etc/paths.d/Xcode-symbolicatecrashऔर स्क्रिप्ट फ़ाइल निर्देशिका चिपकाएँ और फ़ाइल सहेजें। नया टर्मिनल खोलते समय, आप symbolicatecrashकिसी भी फोल्डर में कॉल कर सकते हैं , जिसमें कमांड स्थित हैं/usr/bin

या

इस स्थान से प्रतीकात्मक फ़ाइल को कॉपी करें, और इसे डेस्कटॉप / MyApp पर पेस्ट करें (प्रतीक्षा करें ... नेत्रहीन रूप से मेरा अनुसरण न करें, मैं फ़ोल्डर MyApp में sybolicatecrash फ़ाइल चिपका रहा हूं, एक जो आपने अपने पसंदीदा स्थान पर चरण एक में बनाई थी, जिसमें तीन फाइलें थीं। )

चरण 4

टर्मिनल खोलें, और MyApp फ़ोल्डर में सीडी।

cd Desktop/MyApp — Press Enter
export DEVELOPER_DIR=$(xcode-select --print-path)

 -  एंटर दबाएं

./symbolicatecrash -v MyApp-Crash-log.crash MyApp.dSYM

 -  एंटर दबाएं

बस !! प्रतीकात्मक लॉग आपके टर्मिनल पर हैं ... अब आप किसकी प्रतीक्षा कर रहे हैं? अब बस, त्रुटि का पता लगाएं और इसे हल करें;)

हैप्पी कोडिंग !!!


2
@ EmilVikström: सुझाव के लिए धन्यवाद, जवाब अपडेट किया है।
मृग

2
निर्यात DEVELOPER_DIR = का उपयोग करेंxcode-select --print-path
पराग बाफना

8
एक इलाज का काम किया - धन्यवाद। बस एक चीज मुझे एक्सपोर्ट DEVELOPER_DIR = / Applications / XCode.app / Contents / Developer (बिना कोट्स के) का उपयोग करना था।
गोइलेक्ट्रिक

1
"निर्यात DEVELOPER_DIR = xcode-select --print-path" बस मुझे बताता है "-बश: निर्यात:` - छाप-पथ ': एक वैध पहचानकर्ता नहीं
Almo

2
अपडेट करें; यह रहा ; xcode7 के लिए यहां प्रतीक चिन्ह खोजें; प्रति /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash stackoverflow.com/questions / ३२ /०४६११ /…
२०:२० बजे ऐनीइगाइल

27

मेरे लिए .crash फ़ाइल पर्याप्त थी। .DSYM फ़ाइल और .app फ़ाइल के बिना।

मैंने इन दो कमांडों को मैक पर चलाया, जहाँ मैं आर्काइव बनाता हूँ और यह काम करता है:

export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer" 

/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash  /yourPath/crash1.crash > /yourPath/crash1_symbolicated.crash

वाह। मुझे नहीं पता कि यह .dsym फ़ाइल के बिना कैसे काम करता है लेकिन यह काम करता है!
15 मई को

4
@rustyMagnet जिस तरह से काम करता है वह आपके कंप्यूटर पर संग्रहीत बिल्ड से dsyms का उपयोग करके है।
एंड्रे टारनटोसोव

1
हाँ, यह केवल आपके द्वारा Xcode के साथ संग्रहित किए गए बिल्ड के लिए काम करता है, न कि किसी अन्य बिल्ड से, जो आपने तदर्थ रन के लिए उत्पन्न किया हो, जिसके लिए आप क्रैश लॉग का प्रतीक बनाना चाहते हैं।
CMash

21

Xcode का उपयोग करने का एक आसान तरीका है (कमांड लाइन टूल का उपयोग किए बिना और एक समय में पते ढूंढना)

  1. कोई भी .xcarchive फ़ाइल लें। यदि आपके पास इससे पहले कि आप उपयोग कर सकते हैं। यदि आपके पास एक नहीं है, तो Xcode से उत्पाद> संग्रह चलाकर एक बनाएं।

  2. .Xcarchive फ़ाइल पर राइट क्लिक करें और 'पैकेज सामग्री दिखाएँ' चुनें

  3. DSYMs फ़ोल्डर में dsym फ़ाइल (क्रैश हुए एप्लिकेशन के संस्करण) की प्रतिलिपि बनाएँ

  4. उत्पाद> अनुप्रयोग फ़ोल्डर में .app फ़ाइल (क्रैश हुए एप्लिकेशन का संस्करण) कॉपी करें

  5. Info.plist को संपादित करें और ApplicationProperties शब्दकोश के तहत CFBundleShortVersionString और CFBundleVersion को संपादित करें। यह आपको बाद में संग्रह को पहचानने में मदद करेगा

  6. Xcode पर आयात करने के लिए .xcarchive पर डबल क्लिक करें। इसे ऑर्गनाइजर खोलना चाहिए।

  7. क्रैश लॉग पर जाएं (Xcode में डिवाइस विंडो में)

  8. अपनी .crash फ़ाइल को वहां खींचें (यदि पहले से मौजूद नहीं है)

  9. संपूर्ण क्रैश लॉग को अब प्रतीक किया जाना चाहिए। यदि नहीं, तो राइट क्लिक करें और 'री-सिंबल क्रैश लॉग' चुनें


1
आपका उत्तर सही और सरल है। टर्मिनल ऐप का उपयोग करने की कोई आवश्यकता नहीं है। .Xcarchive फ़ोल्डर का मनोरंजन बहुत महत्वपूर्ण है, क्योंकि .app.dSYM फ़ोल्डर की ज़िप बॉल के बजाय कुछ कंटीन्यूअस-इंटीग्रेशन सिस्टम में .xcarchive फ़ाइल नहीं है। संयोग से, मैंने कल जो किया है वह ठीक वैसा ही है जैसा आपने कहा।
डॉनसॉन्ग

पूर्ण आउटपुट कैसा दिखना चाहिए?
noobsmcgoobs

यह आंशिक रूप से मेरे क्रैश लॉग का प्रतीक है, हालांकि मैंने चरण 3-5 को छोड़ दिया क्योंकि मेरा xcarchive ऐप क्रैश होने वाले संस्करण के लिए है।
डेक्कन मैककेना

1
यह केवल आपके स्वयं के कोड का प्रतीक होगा - बाहरी पुस्तकालय कोड नहीं जो आपने उपयोग किया हो।
RPM

7

एक ही मशीन पर एक एप्लिकेशन बिल्ड से क्रैश लॉग का प्रतीक करने के लिए Xcode 10 में इन चरणों का पालन करें:

  1. ऑर्गनाइज़र के अंदर , उस आर्काइव को खोजें जहाँ ऐप आधारित है।
  2. डीबग सिंबल बटन पर क्लिक करें। आपके डाउनलोड फ़ोल्डर में कुछ भी नहीं दिखाई देगा, लेकिन यह ठीक है।
  3. एक iOS डिवाइस के लिए बिल्ड मशीन कनेक्ट करें।
  4. उपकरण और सिमुलेटर में डिवाइस का चयन करें ।
  5. डिवाइस लॉग्स बटन पर क्लिक करें।
  6. बाएं पैनल पर क्रैश फ़ाइल को ड्रैग-एंड-ड्रॉप करें। फ़ाइल को एक .crash एक्सटेंशन के साथ समाप्त होना चाहिए , अन्यथा ड्रैग विफल हो जाता है।
  7. सभी लॉग टैब पर स्विच करें ।
  8. जोड़े गए क्रैश फ़ाइल का चयन करें।
  9. फ़ाइल को स्वचालित रूप से प्रतीक होना चाहिए, अन्यथा राइट-क्लिक करें संदर्भ मेनू आइटम पुन: प्रतीक लॉग का उपयोग करें

1
पहले तो मुझे नहीं लगा कि यह अन्य पोस्टों के लिए कुछ भी जोड़ रहा है, लेकिन पहले दो चरण, विशेष रूप से 'डीबग सिंबल डाउनलोड करें', ऐसा लगता है कि मैं गायब था। धन्यवाद।
क्रिस्टोफर किंग

6

यदि आपके पास .dSYM और .crash फ़ाइल एक ही सब-फोल्डर में हैं, तो ये वे चरण हैं जो आप ले सकते हैं:

  1. .Crash फ़ाइल में बैकट्रेस को देखते हुए, दूसरे कॉलम में बाइनरी इमेज का नाम और तीसरे कॉलम में पता नोट करें (जैसे 0x00000001000effdc नीचे दिए गए उदाहरण में)।
  2. बैकट्रेस के नीचे, "बाइनरी इमेजेस" सेक्शन में, बाइनरी इमेज (उदाहरण TheElements) के इमेज नाम, आर्किटेक्चर (जैसे आर्म 64) और लोड एड्रेस (नीचे उदाहरण में 0x1000e4000) को नोट करें।
  3. निम्नलिखित को निष्पादित करें:

$ atos -arch arm64 -o TheElements.app.dSYM/Contents/Resources/DWARF/TheElements -l 0x1000e4000 0x00000001000effdc -[AtomicElementViewController myTransitionDidStop:finished:context:]

आधिकारिक स्रोत: https://developer.apple.com/library/content/technotes/tn2151/_index.html#//apple_ref/doc/uid/DTS40008184-CH1-YYMBOLICATE_WITH_ATOS


4

Xcode 11.2.1, दिसंबर 2019

Apple आपको .txt फॉर्मेट में क्रैश लॉग देता है, जो कि अनमोल है

**

डिवाइस के साथ जुड़ा हुआ है

**

  • ".Txt" फ़ाइल डाउनलोड करें, ".crash" में एक्सटेंशन बदलें यहां छवि विवरण दर्ज करें
    • Xcode में विंडो टैब से डिवाइस और सिमुलेटर खोलें
    • डिवाइस का चयन करें और डिवाइस लॉग का चयन करें
    • डिवाइस लॉग विंडो में .crash फ़ाइल को खींचें और छोड़ें

यहां छवि विवरण दर्ज करें

हम वहां पर प्रतीकात्मक क्रैश लॉग देख पाएंगे

कृपया प्रतीकात्मक क्रैश लॉग पर अधिक जानकारी के लिए लिंक देखें


वाह। .Txt से .crash में फ़ाइल एक्सटेंशन को बदलना उन्होंने मुझे एक .txt फ़ाइल दी। धन्यवाद दोस्त। विश्वास नहीं कर सकता कि आपका उत्तर यह कम है।
datWooWoo

3

सुनिश्चित करें कि आपके Xcode आवेदन नाम में कोई स्थान नहीं है। यही कारण था कि यह मेरे लिए काम नहीं करता था। तो /Applications/Xcode.appकाम करता है, जबकि /Applications/Xcode 6.1.1.appकाम नहीं करता है।


आपने कोशिश की है? यदि नहीं, तो कृपया कोशिश करें और देखें कि क्या आपकी टिप्पणी से कोई मतलब है।
बुके

1
यह वही मुद्दा नहीं है जैसा मैं बात कर रहा हूं। स्थापित करने के बाद Xcode का नाम बदला जा सकता है, लेकिन पहले उपयोग से पहले। हालांकि प्रतीक के लिए स्क्रिप्ट अनुप्रयोग के नाम में रिक्त स्थान को संभाल नहीं सकती है और विफल हो जाएगी।
बोके

1
@ChuckKrutsinger क्या आपने वास्तव में कोशिश की है? क्योंकि बची हुई जगहें आपको स्क्रिप्ट चलाने की अनुमति देंगी, लेकिन स्क्रिप्ट ही विफल हो जाएगी। स्क्रिप्ट संभवतः बची हुई जगह के साथ अन्य लिपियों को नहीं बुलाती है।
बॉके

1
@ChuckKrutsinger यह बहुत अच्छा और सभी है, लेकिन अगर कोई चाहता है कि Xcode दुर्घटना लॉग का स्वचालित रूप से प्रतीक हो, तो आपको अंत में मेरे जवाब की आवश्यकता होगी।
बुके

1
मैं यह दोहराना चाहूंगा कि बुके सही है और अगर आपके पास Xcode ऐप के लिए रास्ते में जगह है, तो स्क्रिप्ट Xcode का उपयोग क्रैश लॉग को फिर से करने के लिए उपयोग नहीं होगा। मैन्युअल री-सिंबल से कोई लेना-देना नहीं।
गैरी माकिन

2

Apple के डॉक्स से:

Xcode के साथ प्रतीकात्मक क्रैश रिपोर्ट Xcode स्वचालित रूप से सामना करने वाली सभी क्रैश रिपोर्ट का प्रतीक बनाने का प्रयास करेगा। प्रतीक के लिए आपको बस इतना करना है कि क्रैश रिपोर्ट को एक्सकोड ऑर्गनाइज़र में जोड़ दें।

  • अपने मैक के लिए एक आईओएस डिवाइस कनेक्ट करें
  • "विंडो" मेनू से "डिवाइस" चुनें
  • बाएं कॉलम में "DEVICES" सेक्शन के तहत, एक डिवाइस चुनें
  • दाहिने हाथ पैनल पर "डिवाइस सूचना" अनुभाग के तहत "डिवाइस लॉग देखें" बटन पर क्लिक करें
  • प्रस्तुत पैनल के बाएँ कॉलम पर अपनी क्रैश रिपोर्ट खींचें
  • Xcode स्वचालित रूप से क्रैश रिपोर्ट का प्रतीक होगा और परिणाम प्रदर्शित करेगा क्रैश रिपोर्ट का प्रतीक करने के लिए, Xcode को निम्नलिखित का पता लगाने में सक्षम होना चाहिए:

    1. दुर्घटनाग्रस्त एप्लिकेशन की बाइनरी और dSYM फ़ाइल।

    2. बायनेरिज़ और dSYM सभी कस्टम फ्रेमवर्क के लिए फाइल करता है जो एप्लिकेशन के खिलाफ लिंक करता है। अनुप्रयोग से स्रोत से बनाए गए चौखटे के लिए, उनकी dSYM फ़ाइलों को एप्लिकेशन की dSYM फ़ाइल के साथ संग्रह में कॉपी किया जाता है। तृतीय-पक्ष द्वारा बनाए गए चौखटे के लिए, आपको लेखक से dSYM फ़ाइल के लिए पूछना होगा।

    3. OS के लिए सिंबल कि यह एप्लिकेशन क्रैश होने पर चल रहा था। इन प्रतीकों में विशिष्ट OS रिलीज़ (जैसे, iOS 9.3.3) में शामिल चौखटे के लिए डिबग जानकारी है। OS प्रतीक आर्किटेक्चर विशिष्ट हैं - 64-बिट डिवाइसों के लिए iOS की एक रिलीज़ में armv7 प्रतीक शामिल नहीं होंगे। Xcode स्वचालित रूप से आपके मैक से कनेक्ट होने वाले प्रत्येक डिवाइस से ओएस प्रतीकों की नकल करेगा।

यदि इनमें से कोई भी गायब है तो Xcode दुर्घटना रिपोर्ट का प्रतीक नहीं हो सकता है, या केवल आंशिक रूप से क्रैश रिपोर्ट का प्रतीक हो सकता है।


2

दुर्घटना लॉग का प्रतीक करने के लिए सबसे आसान प्रक्रिया:

  1. भविष्य के उपयोग के लिए IPA निर्माण प्रक्रिया के दौरान आयोजक से xcarchive फ़ाइल को संरक्षित करें।
  2. जब क्रैश होता है, तो प्रभावित डिवाइस से क्रैश लॉग इकट्ठा करें। विस्तार होना चाहिए। यदि क्रैश लॉग .ips प्रारूप में है, तो इसे .crash में नाम बदलें।
  3. आयोजक में प्रकट होने के लिए संग्रहीत पथ से डबल क्लिक करें।
  4. Xcode विंडो में खोलें-> डिवाइस और सिमुलेटर -> डिवाइस लॉग देखें -> सभी लॉग -> ड्रैग और .crash फ़ाइल को ड्रॉप करें।

5secs के लिए प्रतीक्षा करें। बैंग! स्टैक ट्रेस में एप्लिकेशन कॉल का प्रतीक होगा! आप अभी भी बहुत सारे प्रतीक देख सकते हैं! वे आंतरिक पुस्तकालय और रूपरेखा कॉल हैं।

यह सबसे आसान एक है, कोशिश की और परीक्षण किया!


1

Apple आपको .txt फॉर्मेट में क्रैश लॉग देता है, जो कि अनमोल है

**

डिवाइस के साथ जुड़ा हुआ है

**

  • ".Txt" फ़ाइल डाउनलोड करें, ".crash" में एक्सटेंशन बदलें यहां छवि विवरण दर्ज करें
    • Xcode में विंडो टैब से डिवाइस और सिमुलेटर खोलें
    • डिवाइस का चयन करें और डिवाइस लॉग का चयन करें
    • डिवाइस लॉग विंडो में .crash फ़ाइल को खींचें और छोड़ें

यहां छवि विवरण दर्ज करें

हम वहां पर प्रतीकात्मक क्रैश लॉग देख पाएंगे

कृपया प्रतीकात्मक क्रैश लॉग पर अधिक जानकारी के लिए लिंक देखें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.