ios XCTest/XCTest.h एक्सकोड 6 में निर्मित पुरानी परियोजनाओं पर नहीं मिला




xcode cocoapods (9)

नोट: Xcode 7 में बनाए गए किसी भी प्रोजेक्ट के लिए इसकी आवश्यकता नहीं हो सकती है।

कोकोपोड्स के here और here लिए एक फिक्स था

किसी भी कोकोपॉड निर्भरताओं के लिए इसे ठीक करने के लिए आपको निम्न को किसी भी पॉड लक्ष्य में FRAMEWORK_SEARCH_PATHS में जोड़ने की आवश्यकता है जिसके लिए XCTest (उदाहरण केवी, स्पेक्टा, FBSnapshotTestCase, आदि) की आवश्यकता होती है।

$(PLATFORM_DIR)/Developer/Library/Frameworks

यह आपको किसी भी निर्भरता में XCTest का संदर्भ देने की अनुमति देगा। यह कोकोपोड्स, या पॉड के भविष्य के अपडेट में तय किया जा सकता है, जिसे आप संदर्भित कर रहे हैं, ताकि आप इसे बाद में हटा सकें।

यह एक्सकोड के पुराने संस्करणों के लिए हानिकारक नहीं है, इसलिए इसका उपयोग सुरक्षित होना चाहिए।

मेरे पास कुछ परियोजनाएं हैं जिन्हें मैं एक्सकोड 6 बीटा 2 के साथ बनाने की कोशिश कर रहा हूं। परियोजनाओं में सभी प्रकार की लाइब्रेरी है जो एक्ससीटीएस्ट (किवी / एक्ससीटीएस्ट और स्पेक्टा) का उपयोग करती है जो एक्सकोड 6 में नहीं बनती क्योंकि XCTest / XCTest.h नहीं कर सकता पाया जायेगा।

fatal error: 'XCTest/XCTest.h' file not found
#import <XCTest/XCTest.h>

मैंने देखा कि XCTest.framework "लिंक लाइब्रेरीज़ के साथ लिंक लाइब्रेरीज़" चरण सूची में नहीं है, लेकिन यह ठीक है क्योंकि जब मैं एक्सकोड 6 के साथ एक नई प्रोजेक्ट बनाता हूं तो ऐसा लगता है कि लाइब्रेरी स्वचालित रूप से जुड़ी हुई है।

शायद कुछ रिलीज की वजह से, मेरी एक्ससीटीएस्ट-आवश्यकता निर्भरता सभी कोकोपोड्स के माध्यम से लाई जाती है।

क्या मुझे कुछ भी पता नहीं है कि मुझे अपनी परियोजना के साथ अपडेट करने की ज़रूरत है?


लिखने के समय तक, कोकोपोड्स (0.33.1) के नवीनतम संस्करण में समस्या के लिए कोई फिक्स नहीं है।

लेकिन अत्याधुनिक संस्करण करता है।

कोकोपोड्स के नवीनतम संस्करण को स्रोत से सेट करने के लिए इस मार्गदर्शिका का पालन करें । मैं अपने pod-dev (गाइड में शामिल) को कॉल करता हूं ताकि इसे फली के मणि-स्थापित संस्करण से अलग किया जा सके।

इस दृष्टिकोण का लाभ यह है कि आपको अपने पॉडफाइल में अतिरिक्त स्क्रिप्टिंग की आवश्यकता नहीं है। आपको सामान्य pod install बजाय pod-dev install करना याद रखना होगा।


मैं फाइलों को चारों ओर एक परियोजना में ले जा रहा था। आपको बस अपनी टेस्ट फाइलों xxxTests.m आदि का चयन करना है और file inspector target रूप में target चयन करें और नियमित लक्ष्य के रूप में नहीं।


फ्रेमवर्क खोज पथ का पालन करें

/Applications/Xcode6-Beta.app/Contents/Developer/Library/Frameworks

यह सबसे आसान काम है - मुझे मिला है। कोई परियोजना परिवर्तन आवश्यक नहीं है। और यह परिवर्तन आपके अगले एक्सकोड अपग्रेड तक जारी रहेगा:

cd /Applications/Xcode6-Beta7.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.0.sdk/Developer/Library/Frameworks
ln -s ../../../../../Library/Frameworks/XCTest.framework

मैंने देखा है कि XCTest केवल एक परीक्षण लक्ष्य (एक्सकोड 6 में) के लिए उपलब्ध है। यदि आप किसी भी अन्य लक्ष्य (किसी भी कारण से) के लिए XCTest का उपयोग कर उपयोग कर रहे हैं, तो आप XCTest.h not found त्रुटि XCTest.h not found


XCTest रखने का सबसे अच्छा तरीका यह है कि इसे टेस्ट नागिगेटर (बाएं फलक में 5 वां आइकन) से जोड़ना है।

ऐसा करने पर, नई xx.m परीक्षण फ़ाइल एक ऐप (बाएं फलक में> लक्ष्य, रैपर एक्सटेंशन: ऐप) को लक्षित नहीं करती है, लेकिन एक बंडल (रैपर एक्सटेंशन: xctest)

  • XCTest.framework लाल में बनी हुई है,
  • कुछ संशोधनों के कारण आपको त्रुटि 'XCTest/XCTest.h' file not found , ऐसा इसलिए है क्योंकि आपकी फ़ाइल को ऐप को लक्षित करना पड़ा था।

कुछ समय बाद मैंने एक ही मुद्दे का सामना किया है जब मैंने बिल्ड चरणों से एक्ससीटीएस्ट फ्रेमवर्क आयात किया है और इस मुद्दे को हल किया है।

चरणों का निर्माण करें-> XCTest.Framework> साफ और चलाएं। मुझे आशा है कि यह किसी के लिए सहायक होगा ..

आपके संदर्भ के लिए ... मौजूदा प्रोजेक्ट में XCTest आयात करें


यह त्रुटि तब आती है जब आपने एक फ़ाइल जोड़ दी है जहां XCTest परीक्षण परीक्षण के बाहर उपयोग किया जा रहा है। इसे ऐपकोड में ठीक करने के लिए, आप किसी भी संदिग्ध फ़ाइल पर राइट क्लिक कर सकते हैं और 'लक्ष्य प्रबंधित करें' का चयन कर सकते हैं, फिर सुनिश्चित करें कि केवल परीक्षण लक्ष्य चेक किया गया है।







xctest