2015-01-26 14 views
13

पर लॉन्च होने से पहले विस्तार क्रैश मैं आज एक विस्तार कर रहा हूं जो फ़ीड से आलेख डाउनलोड करता है और नवीनतम प्रदर्शित करता है। पूरी चीज आईओएस 8 पर ठीक काम करती है, फिर भी आईओएस 8.1 पर काम करती है, फिर आईओएस 8.1.2 आई और हमने आज के विस्तार के बारे में शिकायतें शुरू नहीं कीं। मैं आईओएस पर डिबगिंग की कोशिश की 8.1.2 उपकरणों, और इससे पहले विस्तार भी लॉन्च करते हैं, यह इस त्रुटि के साथ दुर्घटनाओं: http://www.atomicbird.com/blog/ios-app-extension-tipआज आईओएस 8.1.2

:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** setObjectForKey: object cannot be nil (key: <__NSConcreteUUID 0x174027280> 5AFB07AB-5DCD-46FE-8D07-44DE0F3789F2)' 

मैं हो रहा है जब एक आज एक्सटेंशन को डेवलप अक्सर कीड़े के बारे में इस पोस्ट को पढ़ लिया है

अपने पद में, टॉम हैरिंगटन का कहना है:

iOS 8 (और हाल ही में अन्य संस्करणों) में, Xcode के निर्माण सेटिंग्स में मॉड्यूल को सक्षम करने का मतलब है कि आप स्पष्ट रूप सभी व्यवस्थाएं आप उपयोग करना चाहते सूचीबद्ध करने की आवश्यकता नहीं है। वे स्वचालित रूप से पाए जाएंगे।

लेकिन यह NotificationCenter.framework के साथ मामला नहीं है, जो आज एक्सटेंशन का उपयोग करता है। यदि आप बिल्ड सेटिंग्स से इसे हटाते हैं, तो आपको कोई भी निर्माण चेतावनी या त्रुटियां नहीं मिलेंगी। लेकिन जब आप एक्सटेंशन लोड करने का प्रयास करते हैं, तो आपको libextension.dylib से अपवाद मिलेगा और आपका एक्सटेंशन लोड नहीं होगा। अपवाद संदेश शिक्षाप्रद नहीं है:

2014-08-16 12: 06: 53.793 TodayTestExtension [41,313: 6,111,763] * न आया हुआ अपवाद 'NSInvalidArgumentException', कारण की वजह से एप्लिकेशन समाप्त: '* setObjectForKey: वस्तु नहीं कर सकते शून्य हो (कुंजी: < __NSConcreteUUID 0x7fd729422390> ED3B42F8-66CD-4CB0-BCD5-F3DBA6F34DB5) ' यदि आप आज का विस्तार कर रहे हैं, तो बस बिल्ड सेटिंग्स को उस सेटिंग में छोड़ दें। इसे वहां होने की आवश्यकता नहीं है, लेकिन यह करता है।

मेरे एक्सटेंशन में इसकी बिल्ड सेटिंग्स में अधिसूचना केंद्र। फ्रेमवर्क शामिल है, लेकिन मुझे संदेह है कि मेरी समस्या किसी तरह से समान हो सकती है।

किसी को भी इसी तरह की समस्या का सामना करना पड़ा? किसी भी विचार को हल करने के लिए कैसे?

+0

वाह, यह निराशाजनक है। यह बिल्कुल वही चीज़ जैसा दिखता है, लेकिन यह एकमात्र चीज है जो मुझे पता है जो इस समस्या का कारण बनती है। –

+0

क्या इन शिकायतों को "क्षेत्र में", या आपके ऐप के टेस्ट बिल्ड चलाने वाले लोगों से थे? पहली जगह यह 8.1.2 बग होगी और आप ऐसा नहीं कर पाएंगे। दूसरे में, यह एक एक्सकोड समस्या हो सकती है जो ठीक हो सकती है। –

उत्तर

0

आखिरकार मैंने अपने लक्ष्य से अधिसूचना केंद्र। फ्रेमवर्क को हटाने की कोशिश की और इसे वापस रख दिया, परियोजना को साफ किया, और अब यह फिर से काम कर रहा है। मुझे लगता है कि फ्रेमवर्क सभी के बाद ठीक तरह से जुड़ा नहीं था, हालांकि मैं इसे अपने लक्ष्य पर एक्सकोड के साथ देख सकता था। साथ ही, मैं यह नहीं समझ सकता कि यह क्यों काम करता है, फिर 8.1.2 के आगमन के साथ काम करना बंद कर दिया।

0

बस एक ही समस्या का अनुभव किया। मेरे लिए, यह कीबोर्ड लक्ष्य के "सामान्य सेटिंग्स" में "मुख्य इंटरफेस" संपत्ति थी। यह खाली था, और मैंने इसे अपनी स्टोरीबोर्ड फ़ाइल में सेट किया और अब यह एक आकर्षण की तरह काम करता है। Screenshot

32

यह त्रुटि तब भी होती है जब आप एक बेस क्लास (स्टोरीबोर्ड का उपयोग करने के बजाय) को परिभाषित करने के लिए "Info.plist" के अंदर NSExtensionPrincipalClass का उपयोग करते हैं, जो मौजूद नहीं है।

स्विफ्ट का उपयोग करते समय, मॉड्यूल नाम (आमतौर पर लक्ष्य का नाम) के साथ क्लास को उपसर्ग करना सुनिश्चित करें जैसे "मॉड्यूल। MyViewController"।

+3

बहुत बढ़िया, यह काम किया! मैंने इसे लचीलापन के अतिरिक्त बिट के लिए '$ (PRODUCT_NAME)' में बदल दिया। – user2565077

+0

आप मेरी जान बचा रहे हैं! – Hilen

+0

यह समाधान _any_ एक्सटेंशन प्रकार पर लागू होता है। और "स्विफ्ट का उपयोग करते समय" भाग ** महत्वपूर्ण ** है। उस मॉड्यूल नाम को मत भूलना। –

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