Crashlytics iPhone से क्रैश रिपोर्ट नहीं भेज रही है


85

मैंने अपने एक iOS एप्लिकेशन में Crashlytics को सेटअप किया है और एक वास्तविक डिवाइस पर एप्लिकेशन इंस्टॉल किया है। मेरा क्रैशलाईटिक्स डैशबोर्ड प्रदर्शित कर रहा है, मैंने ऐप को सफलतापूर्वक जोड़ दिया है। हालाँकि, यह क्रैश रिपोर्ट नहीं भेज रहा है। मेरी इंटरनेट स्पीड इतनी अच्छी नहीं है। लेकिन मैं इस डिवाइस से अपने ईमेल चेक कर सकता हूं। क्या कोई अनुमान लगा सकता है, समस्या कहां है?


5
मैं Crashlytics सेवा के साथ एक ही मुद्दा रहा हूँ। डिवाइस से क्रैश रिपोर्ट कभी नहीं भेजी जाती हैं (मेरे अनुभव में) - केवल सिम्युलेटर से। मैंने Crittercism क्रैश रिपोर्टिंग और त्रुटि हैंडलिंग का उपयोग करके समाप्त किया।
सैम स्पेंसर

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

हां, मैं अपने विकास उपकरण का उपयोग कर रहा हूं। क्या यह समस्या बना रहा है?
फरहाद रुबेल

1
एक पूर्ण सेटअप विवरण या परीक्षण परियोजना के बिना यह उत्तर देना असंभव है। आपको दुर्घटनाग्रस्त सहायता से संपर्क करना चाहिए। जंगली अनुमान लगाने में मदद नहीं करता है।
कर्णी

3
मैं बहुत चकित हूं कि Crashlytics के किसी व्यक्ति ने StackOverflow पर मेरी यह पोस्ट देखी और उसने मुझे ईमेल से संपर्क किया; वह इस मुद्दे को हल करने में मेरी मदद कर रहे हैं। चलिए देखते हैं क्या होता है।
फरहाद रूबेल

जवाबों:


81

Xcode डिबगर क्रैश रिपोर्ट को क्रैश करने की अनुमति नहीं देता है। हाँ, यह मुझे तब भी अजीब लगता है जब मैं पहली बार पढ़ता हूं लेकिन यह एक तथ्य है ( स्रोत )। यही कारण है कि हम क्रैश रिपोर्ट कभी नहीं देखते हैं:
- सिम्युलेटर में
रनिंग ऐप - सीधे डिबगर पर Xcode से चलने और चलाने के लिए iDevice पर ऐप चलाना।

यह सुनिश्चित करने के लिए कि आपके परीक्षण के दौरान कोई दुर्घटना की सूचना दी गई है ( क्रैशलाईटिक्स समर्थन साइट से कॉपी की गई ):
1. लॉन्च सिम्युलेटर
2. प्रेस स्टॉप
3. अपना ऐप लॉन्च करें और क्रैश
को हटाएं। सिम्युलेटर से ऐप को पुनः लोड करें
5. क्रैश रिपोर्ट देखें वेब डैशबोर्ड।

संपादित करें:

एक संदर्भ जोड़ा गया; क्रैशलैटिक्स एक दुर्घटना को मजबूर करने के लिए त्वरित तरीके से एक छोटा लेख भी प्रदान करता है ।


6
इससे मुझे मदद मिली। मुझे यह भी पता चला है कि कुछ मामलों में। दुर्घटनाग्रस्त होने पर क्रैश रिपोर्ट तब तक नहीं भेजी जाएगी, जब तक कि आवेदन फिर से न खोला जाए। पुन: दोहराना: उपयोगकर्ता एक दुर्घटना का अनुभव करता है। उपयोगकर्ता आवेदन फिर से खोल देता है। क्रैशलाइटिक्स पिछली क्रैश रिपोर्ट भेजता है।
तामबीजक

1
@tambykojak यह इस तथ्य के कारण होने की संभावना है कि ज्यादातर मामलों में iOS क्रैश काफी अस्थिर है और सुरक्षित मार्ग अगले ऐप लोड पर क्रैश रिपोर्ट भेजने के लिए है। कई क्रैश रिपोर्टिंग उपकरण इस प्रतिमान का उपयोग आईओएस और अन्य गैर-वीएम क्रैश हैंडलर पर करते हैं।
पिक्सीनैटर

2
धन्यवाद। इसे सही उत्तर के रूप में चिह्नित किया जाना चाहिए :)
iMemon

क्या मुझे इस मामले में किसी भी dsyms को अपलोड करने की आवश्यकता है? यदि हां, तो मैं उन्हें कहां पा सकता हूं?
सोलीक्यूईड

लिंक मर चुके हैं।
लूकी

66

मेरी देर हो गई है लेकिन 100% काम

प्रोजेक्ट बिल्ड सेटिंग्स में कुछ बदलाव करें जैसे नीचे की छवि में

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

और इन निर्देशों का पालन करें।


बिटकोड को अक्षम करने के बाद भी, मुझे अभी भी हर बार डीएसवाईएमएस की त्रुटियां याद आ रही थीं, और 100% समय जब सिम्युलेटर के साथ डिबगिंग हो रही थी। यह तय कर दिया। धन्यवाद।
user3344977

इस सेटिंग को बदलकर मैं
फायरबेस

20

आईओएस पर कोई भी दुर्घटना रिपोर्टर काम नहीं करेगा प्राथमिक कारण विभिन्न दुर्घटना संवाददाताओं से हस्तक्षेप के कारण है। हालांकि, क्रैशलाइट्स के साथ विशेष रूप से उनके लिए कुछ विशिष्ट हो सकता है, जिससे दुर्घटना की रिपोर्ट नहीं हो पाती है।

Xcode डिबगर क्रैश रिपोर्ट को संसाधित करने के लिए किसी क्रैश रिपोर्टर को अनुमति नहीं देता है। इसका कारण यह है कि XCode क्रैश हैंडलिंग कॉल बैक में किसी भी हुक को ओवरराइड करता है। यह तभी होता है जब:

  • सिम्युलेटर में चल रहे एप्लिकेशन (पर डिबगर के साथ)
  • चल रहे डिबगर के साथ Xcode से सीधे निर्माण और चलाने के लिए iDevice पर ऐप चलाएं।

यह सुनिश्चित करने के लिए कि आपके परीक्षण के दौरान दुर्घटना की सूचना है ( http://support.crashlytics.com/knowledgebase/articles/92523-why-can-ti-have-xcode-connected- ):

  1. सिम्युलेटर लॉन्च करें
  2. प्रेस बंद करो
  3. अपना ऐप लॉन्च करें और क्रैश को मजबूर करें
  4. सिम्युलेटर से ऐप को फिर से लॉन्च करें
  5. वेब डैशबोर्ड में क्रैश रिपोर्ट देखें।

जबकि एक सुपर पुराना वीडियो यह अभी भी प्रासंगिक है, यहां ऊपर दिए गए चरणों का एक वीडियो है (उदाहरण के लिए Crittercism): https://www.youtube.com/watch?v=sU6Su3PBFH4


1
Crashlytics खुद को निष्क्रिय करता है जब यह एक डिबगर संलग्न का पता लगाता है। इसलिए नहीं कि यह काम नहीं करेगा, बल्कि इसलिए कि यह डिबगर को सही तरीके से काम करने से रोकेगा । Crashlytics उसी तंत्र का उपयोग करता है जिसे डीबगर स्वयं उपयोग करता है, और यह वास्तव में SDK के लिए सामान्य डीबगिंग प्रवाह को गड़बड़ाने के लिए निराशाजनक होगा। संदर्भ के लिए, मैंने ज्यादातर क्रैशलाईटिक्स एसडीके लिखा।
मैटी

8

मेरे लिए, समस्या यह थी कि डिवाइस मेरे मैक से जुड़ा था :) इस स्रोत से :

इसके अलावा, यदि आपके पास आपका उपकरण आपके मैक से जुड़ा है, तो XCode का डिबगर भी इसमें कदम रखेगा। तो बस परीक्षण से पहले डिवाइस को डिस्कनेक्ट करें :)


7

मैंने निम्न चरणों का उपयोग करके समाधान पाया
। एडिट स्कीम पर जाएं 2. रन -> जानकारी 3. रिलीज करने के लिए बिल्ड कॉन्फ़िगरेशन बदलें। अब ऐप को चलाएं इसे क्रैश करें। आपको मेल प्राप्त होगा।


6

हम हाल ही में इस मुद्दे पर भागे और मैंने पाया कि कहीं न कहीं जिस तरह से बिल्ड स्क्रिप्ट को हटाया गया था। हमारे साथ इस मुद्दे को तय करने के बाद इसे वापस जोड़ना:
./Crashlytics.framework/run <your_api_key> <build_secret>

ध्यान दें: कोकोपोड्स का उपयोग करते समय आप उपरोक्त ( स्रोत ) के बजाय हमारे लिए निम्नलिखित चाहेंगे : ./Pods/CrashlyticsFramework/Crashlytics.framework/run

बिल्ड स्क्रिप्ट जोड़ना:

  1. Xcode 6 में एक रन स्क्रिप्ट बिल्ड चरण जोड़ने के लिए, अपने प्रोजेक्ट में अपने एप्लिकेशन लक्ष्य का चयन करें, फिर "बिल्ड चरण" चुनें।
  2. छोटे "प्लस" आइकन पर क्लिक करें और "नया रन स्क्रिप्ट बिल्ड चरण" चुनें।
  3. अब आपको अपने बिल्ड चरण विकल्पों के बीच में एक रन स्क्रिप्ट सेक्शन देखना चाहिए, जैसा कि ऊपर दिखाया गया है।
  4. रन स्क्रिप्ट बिल्ड फेज के शरीर के अंदर, स्क्रिप्ट में पेस्ट करें

उपरोक्त उद्धरण Crashlytics के विज़ुअल ट्यूटोरियल से आता है , इस पोस्ट में संदर्भित है ।

नोट: मैंने मूल रूप से Crashlytics error code: 202 के लिए इस उत्तर को शब्दशः पोस्ट किया है जब फाइलें सबमिट की जा रही हैं


इससे मुझे मदद मिली है।
क्रिस प्रिंस

1
मैंने पहले ट्विटर एकीकरण के लिए कपड़े का इस्तेमाल किया था, अब मैं चाहता हूं कि दुर्घटनाग्रस्त भी मैं फ्रेमवर्क जोड़ा और मैंने सभी निर्देशों का पालन किया, लेकिन मुझे मेरे डैश बोर्ड को कोई दुर्घटना रिपोर्ट नहीं मिली कृपया मेरी मदद करें
रमेशोस

@iOS_Ramesh मुझे आपकी मदद करने की कोशिश करना पसंद होगा, लेकिन अधिक जानकारी के बिना यह कठिन होगा। ऐसा करने के लिए आपको एक नया प्रश्न खोलना चाहिए, जहां आप हैं (जिस चरण को आपने एकीकृत करने के लिए अनुसरण किया है, किसी उपयुक्त कोड स्निपेट, और कोई भी प्रतिक्रिया जो आप क्रैशलाईटिक्स या कंसोल से प्राप्त कर रहे हैं)।
जेम्स नेल्सन

मैं पहले से ही एक नया प्रश्न पोस्ट करता हूं ... stackoverflow.com/questions/30215049/…
रमेशियो

1
संकेत के लिए धन्यवाद। हमारे रन स्क्रिप्ट में हमने "" रिलीज़ "=" $ {CONFIGURATION} "] चेक किया था और हमने अपने रिलीज़ कॉन्फ़िगरेशन का नाम बदल दिया है।
मारीआन Marierný

4

RayWenderlich साइट से:

यदि Xcode दुर्घटना की घटना को स्वीकार करता है तो आपको कोई दुर्घटना रिपोर्ट नहीं मिलेगी! काम के नीचे सभी उदाहरण बनाने के लिए, आपको एप्लिकेशन बनाना और चलाना होगा, फिर Xcode पर स्टॉप बटन पर क्लिक करें। इस तरह आपके पास डिवाइस पर नवीनतम संस्करण स्थापित होगा। एक बार जब यह हो जाता है, तो आप डिवाइस पर ही एप्लिकेशन लॉन्च कर सकते हैं, और फिर इसे सभी को क्रैश कर सकते हैं जो आप चाहते हैं! आपके iOS डिवाइस पर सभी क्रैश को उस सेवा के सर्वर घटक में पकड़ा जाएगा जिसे आपने ऐप में एकीकृत किया है। क्रैश रिपोर्ट आमतौर पर अगली बार जब आप ऐप को शुरू करते हैं, तो सर्वर पर भेजे जाते हैं, इसलिए सर्वर पर क्रैश रिपोर्ट उत्पन्न करने के लिए निम्न चरण निम्नानुसार हैं: Xcode पर बनाएँ और चलाएँ। स्टॉप बटन दबाएं। अपने iOS डिवाइस पर ऐप चलाएं। ऐप को क्रैश कर दें। फिर से ऐप चलाएं।


3

मेरे लिए अब तक क्रैशलैटिक्स काम करता है। मुझे पता नहीं क्यों लेकिन अब यह काम नहीं करता है।

आपको डिबग-मोड को चालू करना चाहिए

[Crashlytics sharedInstance].debugMode = YES;

मेरी समस्या यहाँ है Crashlytics त्रुटि कोड: 202 जब फ़ाइलें सबमिट करें :(


3

सुनिश्चित करें कि आप क्रैश को बहुत जल्दी मजबूर नहीं कर रहे हैं।

[Crashlytics sharedInstance].debugModeकरने के लिए सेट YES;

देखना

Crashlytics] Settings loaded

Xcode कंसोल लॉग पर।

फिर क्रैश को मजबूर करें और ऐप को पुनरारंभ करें, और दुर्घटना की सूचना अब दी जाएगी।


3

मैं एक समान समस्या में भाग गया जब परीक्षण दुर्घटना कोड की कोशिश कर रहा था।

Crashlytics.sharedInstance().crash()

मैं अपना ऐप एक डिवाइस से चला रहा था, बिना Xcode के, और क्रैश क्रैशलाइटिक्स डैशबोर्ड पर दिखाई नहीं देगा। मेरे लिए क्या काम किया Crashlytics वेबसाइट से निम्नलिखित टिप था:

  • क्रैश करने के बाद ऐप को लॉन्च करना सुनिश्चित करें, ताकि क्रैश को अपलोड किया जा सके

मैंने उपरोक्त क्रैश () कॉल, और एप्लिकेशन को फिर से चलाया। फिर दुर्घटना डैशबोर्ड में दिखाई दी।


2

यह दुर्घटनाग्रस्त 3.4.0 से xcode 9 के लिए है चरण 1 चरण 2

ऐसा करने के बाद, धैर्य रखें और कुछ मिनट प्रतीक्षा करें।


1

क्या आपने [[Crashlytics sharedInstance] crash]एक उपकरण पर चलने की कोशिश की है और यह देखने के लिए कि क्या रिपोर्ट किया जाता है? कुछ कारण हैं कि क्रैशल्टिक्स अन्य दुर्घटना पत्रकारों सहित काम नहीं कर सकते हैं आदि।


नहीं, मैं int * x = NULL का उपयोग कर रहा हूं; * x = 42; क्रैश रिपोर्ट देखने के लिए कोड। इसके अलावा, मेरा ऐप अलग-अलग कोर डेटा मॉडल के लिए भी क्रैश हो रहा है।
फरहाद रूबेल

1

यदि आप dSYM फ़ाइल अपलोड नहीं करते हैं, तो रिपोर्ट सफलतापूर्वक अपलोड होने के बावजूद Crashlytics आपका क्रैश नहीं दिखाएगा।

आप इस समस्या में भाग सकते हैं, यदि आपने अपनी बिल्ड-स्क्रिप्ट को केवल अपने CI सर्वर पर चलाने के लिए सेट किया है। फिर यदि आपने अपने ऐप को अपने फोन में xcode के माध्यम से कॉपी किया है और आप डिबगर से जुड़े बिना इसे चलाते हैं, तो रिपोर्ट गायब हो जाने के कारण अपलोड की जाएगी, लेकिन इसे अनदेखा कर दिया जाएगा।


1
संदर्भ के रूप में: support.crashlytics.com/knowledgebase/articles/…
atrutz

1

कभी-कभी, लॉग दिखाने में कुछ समय लगता है। मैं 15-20 मिनट के बाद उन्हें खोजने में सक्षम हूं


0

इस मुद्दे में से एक मुझे लगता है कि रन स्क्रिप्ट चरण में, यह क्रैशलाइटिक्स के लिए एक अलग रन स्क्रिप्ट चरण होना चाहिए। जब रन स्क्रिप्ट थी

./Fabric.framework/run

मेरे कुछ अन्य स्क्रिप्ट के साथ, सब कुछ ठीक था, क्रैशलाइटिक्स लॉग शो रिपोर्ट प्रस्तुत की गई, लेकिन वेब इंटरफ़ेस में कुछ भी नहीं था।

जब मैं केवल रन रन के साथ एक और रन स्क्रिप्ट चरण जोड़ता हूं, यह एक जादू की तरह दिखाई देता है :)

मेरी पहली कोशिश कोकोपोड्स के साथ थी, लेकिन यह काम नहीं किया। जब मैं मैन्युअल रूप से सभी ढांचे और एक अलग रन स्क्रिप्ट चरण जोड़ देता हूं जो काम करता है।


-1

इसने मेरे लिए काम किया,

यदि आप iDevice पर परीक्षण कर रहे हैं, तो बस अपने Xcode के साथ iDevice को अनप्लग करें और अपना ऐप चलाएं। अब, यदि क्रैश हो गया तो इसे डैशबोर्ड पर अपडेट किया जाएगा।


-3

मैं रन स्क्रिप्ट (विकल्प फैब्रिक (क्रैशल्टिक्स) के लिए एक) में "स्क्रिप्ट चलाने के बाद ही इंस्टॉल करें" को अचयनित करके हल किया गया

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


यह सिर्फ स्क्रिप्ट है जो प्रतीकों को क्रैशेटिक्स में अपलोड करता है; कैसे कि क्रैश रिपोर्ट के मुद्दे को हल नहीं किया जा रहा है? जब प्रतीकों को अपलोड नहीं किया गया है तो क्रैशलेक्टिक्स का उपयोग करने से बचने के लिए आप क्या कदम उठाते हैं? यह उत्तर भ्रामक और केवल स्पष्ट गलत है।
Droppy
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.