xcode - @ पासपोर्ट पार्स समस्या का कारण बनता है: "मॉड्यूल का निर्माण नहीं कर सका"




xcode6.3 (5)

Xcode 6.3 के साथ अद्यतन करने के बाद, मुझे अपनी परियोजनाओं के साथ कुछ अजीब चीजें मिलीं।

नीचे दिए गए कोडों के कारण पार्स मुद्दा है जो कहता है कि "मॉड्यूल 'एजेंडाफ्रेमवर्क' नहीं बना सका", एजेंडाफ्रेमवर्क ios8 के लिए मेरा कस्टम एम्बेडेड फ्रेमवर्क है:

@import MyEmbededFramework;

त्रुटि मार्कर इस तरह दिखता है:

भवन नहीं बनाने के दौरान मुद्दों को उठाया जाता है। संपूर्ण भवन बिना किसी त्रुटि या चेतावनी के सफलतापूर्वक किया जा सकता है। मैं, संग्रह, डिवाइस पर चला सकता हूं, तैनात कर सकता हूं, एप स्टोर में जमा कर सकता हूं।

हालाँकि, जब मैं एक्सटेंशन से संबंधित कक्षाओं को संपादित करता हूं तो त्रुटि मार्कर दिखाता है। विस्तार (विजेट) स्पष्ट रूप से एम्बेडेड ढांचे से जुड़ा हुआ है। (मुझे पता है कि जब मैं @import स्टेटमेंट का उपयोग करता हूं तो मुझे ऐसा करने की आवश्यकता नहीं है।)

इस स्थिति में, मुझे कोई भी मान्य सामग्री सहायक नहीं मिली, जो बहुत कष्टप्रद थी।

आयात विवरण को पुरानी शैली से बदलने के बाद, समस्या गायब हो गई थी:

#import <AgendaFramework/AgendaFramework.h>

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

मैंने कोशिश की:

  • व्युत्पन्न डेटा हटाएं
  • पूर्ण स्वच्छ
  • रीबूट

किसी भी सुराग का स्वागत किया जाता है। धन्यवाद!


आज मैंने उन चरणों द्वारा इस समस्या को हल किया है:

  1. स्कीमा "MyEmbededFramework" का चयन करें
  2. बनाने के लिए [कमांड + बी] दबाएं
  3. बिल्ड चरण पैनल से, "MyEmbededFramework.framework" लिंक को बाइनरी विद लाइब्रेरीज़ में जोड़ें

अपनी परियोजना बनाने की कोशिश करें, समस्या अब गायब हो सकती है।


आप यह कोशिश कर सकते हैं, यह मेरे लिए काम कर रहा है। DerivedData dir को हटाएं जो आपके प्रोजेक्ट के बारे में है। क्रमशः


नमस्ते यह इस तथ्य के कारण है कि जो फाइल आप इसे फ्रेमवर्क हेडर में सार्वजनिक कर रहे हैं वह भी सार्वजनिक होनी चाहिए।


मॉड्यूल की बिल्ड सेटिंग्स को बंद करें। यह काम कर सकता है


समाधान जो मेरे लिए काम करते हैं: फ्रेमवर्क हेडर में परिश्रम फ़ाइल सिस्टम सिस्टम आयात के लिए फ़ाइल अभिविन्यास ... जैसे #import <CoreXLib/CoreThreads.h> कहानी:

मेरे मामले में मेरा ढांचा जो मैंने बनाया था वह कई कोड आधारों के संयोजन से आया था क्योंकि यह स्पष्ट हो गया था कि मैं उस कोड आसान के कुछ सामान्य डिजाइन पैटर्न का उपयोग फ्रेमवर्क बनाम नाजुक एक्सकोड प्रोजेक्ट पाथनाम के माध्यम से कर सकता हूं।

जैसा कि मैंने अपने ढांचे "CoreXLib" का निर्माण किया, मैंने इसे Xcode के कोको फ्रेमवर्क विशिष्ट में पुनर्गठित किया। मैंने अपना आयात इससे बदल दिया:

    #import "CoreTypeAliases.h"    // project local style   

सेवा मेरे

    #import <CoreXLib/CoreTypeAliases.h>    // system or framework style

उचित रूप से। कई परियोजनाओं में CoreXLib.framework का उपयोग किया गया जिसमें लेगो-फ़ोल्डर में सार्वजनिक हेडर शामिल हैं ... ने काम किया, इसलिए मुझे लगा कि मुझे जाना अच्छा था ...

दुर्भाग्य से कुछ हेडर जो सार्वजनिक थे, वे पूरी तरह से अपडेट नहीं हुए। ढांचे में कक्षाएं स्थानीय शैली में ही ठीक बनाई गई हैं। इसका उपयोग करने वाली सभी परियोजनाओं ने इस बिंदु तक काम किया और फिर मैं उस एक में भाग गया, जो नहीं था ... और त्रुटि @ @eyeyul द्वारा नोट की गई थी

इसलिए इस धागे को खोजने और @kwz समाधान खोजने के बाद, और मेरे मामले में कुछ भी नहीं करने के बाद, मैंने इस समस्या का पता लगाने की कोशिश करते हुए कोड को चमकाने का फैसला किया। पॉलिशिंग में, मैंने पाया कि कुछ #imports नहीं बदले हैं जैसे कि उन्हें Xcode खोज और #imports होना चाहिए। कुछ हाथ मिलाने का समय ...

मेरे सभी CoreXLib प्रोजेक्ट हेडर (न केवल सार्वजनिक लोगों, आत्मरक्षा) में उन सभी संदर्भों को ठीक करने के बाद, मैं समस्या में वापस आता हूं ... मैंने नए कंप्लीट किए गए CoreXLib.framework को अपने द्वारा एम्बेड किए गए त्रुटिपूर्ण पर ले लिया। .. और समस्या गायब हो गई थी! मैंने Allow Non-modular Includes... फ्रेमवर्क प्रोजेक्ट और प्रोजेक्ट दोनों में जो फ्रेमवर्क को जोड़ता है और दोनों "नहीं" थे। "हाँ" और "नहीं" दोनों पर फ़्लिप करने से कई परीक्षणों में कोई फ़र्क नहीं पड़ा। केवल दूसरा परिवर्तन #import "..." #import <CoreXLib/...> संशोधनों का था।

तो कभी-कभी सेब को चमकाने वाले ocks बग्स को खटखटाते हैं ...





xcode6.3