दिलचस्प पोस्ट
जावा: नियंत्रण प्रवाह के रूप में अपवाद? सिसिरी.स्टैट्स में उपलब्ध सभी वितरण क्या दिखते हैं? क्रोम: वेब तत्वों का स्वचालित बदलाव रिचटेक्सबॉक्स में मल्टी रंग का उपयोग कैसे करें पोर्टेबल कोड को सी ++ में कैसे लिखें? एंड्रॉइड के साथ टेलीफोन देश कोड प्राप्त करना डब्लूसीएफ: यूजरनामटोकन को नोड्स जोड़ना अंजाम में शब्दकोश कुंजी या पैरामीटर वेरिएबल को हल करें jQuery के एचटीएमएल विशेषता IE में काम नहीं कर रहा है JSF फेसलेट: कभी-कभी मुझे यूआरएल .jsf और कभी-कभी .xhtml दिखता है। क्यूं कर? मैं फ़ायरफ़ॉक्स कैसे एक पृष्ठभूमि-रंग शैली मुद्रित कर सकता हूँ? निर्माण के द्वारा हाशसेट मूल्यों को कैसे प्रारंभ करें? जावा ऑपरेटर प्राथमिकता दिशानिर्देश PHP json_decode () वैध JSON के साथ नल रिटर्न? सी # में मुक्केबाजी की घटना

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

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

Solutions Collecting From Web of "कैसे क्रैश लॉग Xcode का प्रतीक है?"

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

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

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

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

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

यदि कभी भी किसी क्रैश रिपोर्ट का संकेत देने वाली समस्याएं हैं, तो एक इन्हें निम्नानुसार दूर कर सकता है:

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

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

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

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

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

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

 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 (इस मामले में 0x0033f9bb ) को यह पुष्टि करनी चाहिए कि यह वास्तव में main() और कुछ यादृच्छिक विधि या फ़ंक्शन नहीं।

यदि पता main() का नहीं है, तो अपना लोड एड्रेस ( -l ऑप्शन) और आर्क ( -arch ऑप्शन) देखें।

पी पी एस

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

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

दुर्घटना पुनः-प्रतीकात्मकता

चरण 1

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

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

चरण 2

अब फ़ाइंडर की अपनी बारी, निम्न से पथ जो आपके XCODE संस्करण के लिए लागू है, पर जाएं।

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

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

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

एक्सकोड 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

इस जगह से प्रतीक चिह्न फ़ाइल कॉपी करें, और उसे डेस्कटॉप / मेरा ऐप (पेस्ट करें) में चिपकाएं … मुझे अंधे से न चलें, मैं फ़ोल्डर MyApp में sybolicatecrash फ़ाइल पेस्ट कर रहा हूं, जिसे आपने अपने पसंदीदा स्थान पर एक चरण में बनाया है, तीन फाइलें रखी हैं। )

चरण 3

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

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

Enter दबाएं

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

Enter दबाएं

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

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

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

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

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

  3. डीएसवाईएम फ़ोल्डर में डीएसआईएम फ़ाइल (एप के संस्करण का जो क्रैश हुआ) कॉपी करें

  4. Products> Applications फ़ोल्डर में .app फ़ाइल (एप्लिकेशन के संस्करण का जो कि क्रैश हो गया है) की प्रतिलिपि बनाएँ

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

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

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

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

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

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

ऐप्पल के डॉक्स से:

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

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

    1. क्रैशिंग एप्लिकेशन की बाइनरी और डीएसवाईएम फ़ाइल

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

    3. ओएस के प्रतीक जो कि उस क्रैश होने पर उस एप्लिकेशन पर चल रहा था। इन प्रतीकों में विशिष्ट ओएस रिलीज (जैसे, आईओएस 9.3.3) में शामिल फ्रेमवर्क के लिए डीबग की जानकारी शामिल है। ओएस प्रतीकों वास्तुकला विशिष्ट हैं – 64-बिट उपकरणों के लिए आईओएस की एक रिलीज में armv7 प्रतीकों को शामिल नहीं किया जाएगा Xcode स्वचालित रूप से प्रत्येक डिवाइस से ओएस प्रतीकों को कॉपी करेगा जो आप अपने मैक से जुड़ते हैं।

अगर इनमें से कोई भी गुम नहीं है, तो एक्सकोड क्रैश रिपोर्ट का प्रतीक नहीं कर सकता है, या क्रैश रिपोर्ट को आंशिक रूप से सिग्नल कर सकता है।

मेरे लिए। Crap फाइल पर्याप्त थी .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