2015-02-17 19 views
24

मैंने स्विफ्ट पर एक ऐप बनाया है और इसे आईफोन 6, आईफोन 6 प्लस और आईफोन 5 डिवाइस और एक्सकोड में पेश किए गए सभी सिमुलेटर का उपयोग करके बड़े पैमाने पर परीक्षण किया है। ऐप ठीक चलाता है और स्थानीय रूप से अपलोड होने पर क्रैश नहीं होता है। (आईओएस 8)ऐप क्रैश केवल टेस्टफाइट बिल्ड पर

अंत में मैंने टेस्टफाइट के लिए एक बिल्ड प्रस्तुत किया। टेस्टफाइट बिल्ड के माध्यम से ऐप डाउनलोड करने के बाद ऐप लगातार उसी स्थान पर क्रैश हो जाता है।

क्या कोई ज्ञात समस्या है जहां अपलोड किए गए निर्माण स्थानीय रूप से बनाए गए निर्माण से भिन्न रूप से चलते हैं? और मैं टेस्टफाइट बिल्ड के साथ इस मुद्दे को कैसे डीबग कर सकता हूं?

+0

एक ही मुद्दा एक बार था। मैंने ऐप को अपने डिवाइस पर हटा दिया और इसे पुनः इंस्टॉल किया। इससे मदद मिली। क्या आपने कोशिश की? – croX

+0

हाँ मैंने सब कुछ हटा दिया और यहां तक ​​कि मेरे उपकरणों में से एक को मिटा दिया। टेस्टफलाइट का उपयोग कर ऐप डाउनलोड करने वाले सभी उपकरणों पर, यह एक ही स्थान पर क्रैश हो जाता है। जब मैं स्थानीय रूप से निर्माण (एक्सकोड के माध्यम से) स्थापित करता हूं, तो यह कभी भी दुर्घटनाग्रस्त नहीं होता है। – Taylor

+0

यदि ऐप इसका उपयोग करते समय क्रैश हो जाता है, तो आपके पास आपके कोड में एक बग है।आपको क्या हो रहा है पर संकेत प्रदान करने में सक्षम होने के लिए दूसरों के लिए एक जटिल क्रैश रिपोर्ट प्रदान करने की आवश्यकता है। – Kerni

उत्तर

3

मैंने fastest से none से त्वरित कंपाइलर अनुकूलन को बदलकर इस मुद्दे को हल किया। मुझे यकीन नहीं है कि यह एक आदर्श दीर्घकालिक समाधान है, लेकिन निर्माण अब दुर्घटनाग्रस्त नहीं है।

49

मुझे लगता है कि यह एक त्वरित कंपाइलर मुद्दा है। पहले संपादित योजना के पास जाओ तो भागो टैब में रिलीज मोड में बिल्ड विन्यास बदलने और उसके बाद का निर्माण स्थानीय स्तर पर स्थापित सत्यापित करने के लिए। आपको पता चलेगा कि यह वास्तव में दुर्घटनाग्रस्त कहां है।

+11

मैंने वास्तव में तेजी से कंपाइलर अनुकूलन को सबसे तेज़ से बदलकर इस मुद्दे को हल किया। मुझे यकीन नहीं है कि यह एक आदर्श दीर्घकालिक समाधान है, लेकिन अब क्रैश नहीं बनता है। – Taylor

+0

यहां वही समस्या है। आप "स्विफ्ट कंपाइलर अनुकूलन" कैसे बदलते हैं? – Vakas

+2

1) सेटिंग्स बनाएं 2) स्विफ्ट कंपाइलर - कोड जनरेशन 3) अनुकूलन स्तर – Pugin

1

किसी और एक ही समस्या हो रही है किसी को भी, यहाँ क्या मेरी ठीक था बताया गया है:

मैं अंत में समस्या नीचे एक पाश के लिए एक अगर बयान के साथ, मिल गया इस के लिए समान -

while(condition) 
{ 
    if (check) 
    { 
     code! 
    } 
    //There was no code here 
} 

सूचना है कि लूप के अंत में कोई कोड नहीं है (जहां टिप्पणी है)। एक बार जब मैंने एक यादृच्छिक बिट कोड जोड़ा (इस मामले में, आउटपुट के लिए एक चर बढ़ाना), समस्या बंद हो गई।

while(condition) 
{ 
    if (check) 
    { 
     code! 
    } 
    i += 1; 
    output statement 
} 

मैं इस सब पर एक संकलक त्रुटि, वरना मेरी एक फिक्स "ठीक" नहीं होना चाहिए हो गया लगता है। लेकिन यहां यह किसी और की मदद करता है!

+2

बहुत उपयोगी नहीं है ... आपको इसे साफ़ करना चाहिए और फिर इस अनावश्यक कोडिंग से पुनः चलाने चाहिए। – nferocious76

2

यह बिटकोड संबंधित समस्या हो सकती है। जांचें कि क्या आपकी सभी तृतीय-पक्ष पुस्तकालय बिटकोड का समर्थन करते हैं और फिर केवल YES पर बिटकोड सेट करें और पर पर सेट करें।

वास्तव में बिटकोड संकलित प्रोग्राम का मध्यवर्ती प्रतिनिधित्व है। आईट्यून्स कनेक्ट पर अपलोड किए जाने वाले ऐप्स जिनमें बिटकोड शामिल है, को ऐप स्टोर पर संकलित और लिंक किया जाएगा।

+0

मेरा मामला! धन्यवाद! – Bimawa

1

खाली होने पर i += 1; के बजाय खाली।

मैं अपने खाली जबकि लूप में ऐसा किया: RunLoop.current.run(until: Date(timeIntervalSinceNow: 1))

और अब TestFlight अनुप्रयोग बम नहीं है!

एक छोटे समय भी काम कर सकते हैं जैसे: RunLoop.current.run(until: Date(timeIntervalSinceNow: 0.25))

संबंधित मुद्दे