कंपाइलर त्रुटि: "गैर-मॉड्यूलर हेडर फ्रेमवर्क मॉड्यूल के अंदर"


204

अब मैं अपने ObjC ढांचे को स्विफ्ट में स्थानांतरित करना चाहूंगा और मुझे निम्नलिखित त्रुटि मिली:

include of non-modular header inside framework module 'SOGraphDB'

संदर्भ एक हेडर फ़ाइल के लिए है जो सिर्फ एक प्रोटोकॉल को परिभाषित करता है और मैं इस प्रोटोकॉल का उपयोग करने के लिए कुछ कक्षाओं में हेडर फ़ाइल का उपयोग करता हूं।

लगता है कि मॉड्यूल सुविधा से संबंधित है, लेकिन यह इस समय बिल्कुल स्पष्ट नहीं है कि कैसे ठीक किया जाए, क्या आप कोई समाधान जानते हैं?

अपडेट करें:

यह एक स्विफ्ट कंपाइलर त्रुटि है।

अद्यतन 2:

एक त्वरित फिक्स (लेकिन मूल कारण को हल नहीं करना) निम्न सेटिंग को हां में सेट करना है: CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES


3
ऐसा लगता है कि "CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES" के लिए एक नया निर्माण सेटिंग है
Stephan

1
क्या किसी ने इस पर देखा है कि सार्वजनिक और मॉड्यूलर हैं? : मैं एक वेनिला (cocoapods) परियोजना के साथ यह देखने github.com/CocoaPods/CocoaPods/issues/3092 और dropbox.com/s/trhe5vwhzoa9bf5/...
क्रिस Conover

क्या किसी ने एक त्वरित स्क्रिप्ट बनाई है जो इसे स्वचालित रूप से सक्षम बनाती है?
फतुहोकू


इनमें से किसी भी समाधान ने मेरे लिए काम नहीं किया, ऐसा लग रहा है कि यह मेरे मामले में एक बोल्ट.फ्रेमवर्क टक्कर था। इसे हटाने से समस्या हल हो गई: stackoverflow.com/a/33114309/3324388
आक्रामक

जवाबों:


316

क्या आपका हेडर सार्वजनिक है?

प्रोजेक्ट एक्सप्लोरर में हेडर फाइल का चयन करें। फिर xcode में दाईं ओर स्थित अनुभाग में, आप देखेंगे कि लक्ष्य के बगल में एक ड्रॉपडाउन है। इसे "प्रोजेक्ट" से "पब्लिक" में बदलें। इसने मेरे लिए काम किया।

सार्वजनिक शीर्षक


मैं इस उत्तर को स्वीकार करता हूं यहां तक ​​कि यह वही है जो मैंने कहा था।
स्टीफन

आप हेडर के पास अपने ढांचे के चरण का निर्माण भी कर सकते हैं और जल्दी से देख सकते हैं कि कौन से हेड सार्वजनिक, प्रोजेक्ट और निजी हैं।
जोस इबेंज

मुझे नहीं लगा कि यह सरल कार्य संभवतः समाधान हो सकता है क्योंकि मैंने एसओ के यहां आने से पहले एक घंटे से अधिक समय तक इसके साथ संघर्ष किया था। लो और निहारना, यह वास्तव में समाधान था और तुरंत काम किया।
टीएमसी

1
और क्या होगा अगर मैं चाहता हूं कि ये हेडर आंतरिक हों?
राफेल

2
यह भी मेरे मुद्दे को हल करती है! मेरे मामले में, मेरी एक पॉड जो कि किसी अन्य पॉड पर निर्भर करती है, मॉड्यूलर मुद्दे के कारण इसे आयात नहीं कर सकती है। इसलिए मैंने सार्वजनिक मोड का उपयोग करते हुए कुछ हेडर को दूसरे पॉड के लिए लक्ष्य के रूप में शामिल किया। और यह मुद्दे को हल करता है!
चेन ली योंग

135

यह एक अपेक्षित संकलक व्यवहार और एक बहुत अच्छे कारण के लिए है।

मुझे लगता है कि इस मुद्दे पर चलने वाले अधिकांश लोगों के कारण होता है कि वे स्विच Application Targetकरने Framework Targetऔर सी और ऑब्जेक्टिव सी हेडर को फ्रेमवर्क के छाता हेडर में जोड़ना शुरू कर देते हैं और यह अपेक्षा करते हैं कि यह एप्लिकेशन के ब्रिजिंग हैडर के समान व्यवहार करे , जो अलग-अलग व्यवहार करता है। छाता हेडर वास्तव में मिश्रित स्विफ्ट, ओबज-सी फ्रेमवर्क के लिए नामित किया गया है और इसका उद्देश्य बाहरी दुनिया के एपीआई को उजागर कर रहा है जो कि आपके ढांचे का उद्देश्य-सी या सी है। इसका मतलब है कि हमारे द्वारा लगाए गए हेडर सार्वजनिक दायरे में होने चाहिए।

इसका उपयोग ऐसी जगह के रूप में नहीं किया जाना चाहिए जो उद्देश्य-सी / सी हेडर को उजागर करता है जो आपके ढांचे के स्विफ्ट कोड में आपके ढांचे का हिस्सा नहीं हैं। क्योंकि उस स्थिति में ये हेडर हमारे फ्रेमवर्क मॉड्यूल के बाहरी दुनिया के हिस्से के रूप में भी सामने आएंगे, जो कि हम अक्सर ऐसा नहीं करना चाहते हैं क्योंकि यह मोड्यूलरिटी को तोड़ता है। (और यही वजह है कि गैर-मॉड्यूलर को फ्रेमवर्क मॉड्यूल में शामिल करने की अनुमति नहीं है )

आपके फ्रेमवर्क स्विफ्ट कोड के लिए ऑब्जेक्टिव-सी / सी लाइब्रेरी को एक्सपोज करने के लिए, हमें ऐसी लाइब्रेरी के लिए एक अलग स्विफ्ट मॉड्यूल को परिभाषित करना चाहिए। फिर एक मानक स्विफ्ट import YourLegacyLibraryका उपयोग किया जा सकता है।

मुझे कुछ विशिष्ट परिदृश्य पर यह प्रदर्शित करने दें: libxml2हमारे ढांचे में एम्बेड करना।

1. आपको सबसे पहले एक module.modulemapफाइल बनाने की जरूरत है जो इस तरह दिखेगी:

OSX ढांचे के लिए:

module SwiftLibXML2 [system] {
  header "/usr/include/libxml2/libxml/xpath.h"
  export *
}

IOS ढांचे के लिए:

module SwiftLibXML2 [system] {
  header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/libxml2/libxml/xpath.h"
  export *
}

यह सब यह है कि यह हेडर को लपेटता है और किसी भी अन्य हेडर को यह स्विफ्ट मॉड्यूल के अंदर संदर्भित करता है, ताकि स्विफ्ट फिर इन सी इंटरफेस के लिए स्विफ्ट बाइंडिंग उत्पन्न कर सके।

2. इसके बाद अपने xcode प्रोजेक्ट डायरेक्टरी में एक फोल्डर बनाएं SwiftLibXML2और इस मॉड्यूल .odulemap को वहां रखें

3. में सेटिंग बिल्ड , जोड़ने $(SDKROOT)/usr/include/libxml2के लिए हैडर खोजें पथ

4. में सेटिंग बिल्ड , जोड़ने $(SRCROOT)/SwiftLibXML2के लिए आयात पथ

5. के तहत परियोजना के जनरल टैब, जोड़ने libxml2.tbdके लिए लिंक्ड फ़्रेमवर्क और पुस्तकालय

अब आप इस मॉड्यूल को आयात करते हैं, जहाँ इसकी आवश्यकता होती है:

import SwiftLibXML2

(यदि आप एक अधिक संपूर्ण मॉड्यूल देखना चाहते हैं। उदाहरण के लिए, मैं सुझाव दूंगा कि डार्विन के मॉड्यूल.मॉड्यूलमैप को संदर्भित /usr/include/module.modulemapकरने के लिए, आपको वहां जाने के लिए Xcode कमांड-लाइन टूल स्थापित करने की आवश्यकता होगी, संदर्भ मिसिंग / usr / OS OS X Capitan में शामिल होगा। )


1
फ़ाइल नाम module.mapको पदावनत किया गया है, इसका नाम बदल कर module.modulemap clang.llvm.org/docs/Modules.html#attributes
Hyperbole

import SwiftLibXML2ऑब्जेक्टिव-सी में कैसे ? धन्यवाद!
इताची

उसी तरह किसी भी अन्य obj-c आयात के रूप में: #import <libxml / xpath.h> लेकिन सुनिश्चित करें कि आपने चरण 3-5 किया था।
एम्बिएंटलाइट

हमने ऐसा किया है, लेकिन फिर बिल्ड विरूपण साक्ष्य को मशीनों के बीच नहीं ले जाया जा सकता है: उद्देश्य-सी (उप) मॉड्यूल जाहिरा तौर पर निरपेक्ष पथों का उपयोग करके जुड़ा हुआ है, जिससे संकलन करते समय त्रुटियां पैदा होती हैं, कहते हैं, एक ऐप जो आपके द्वारा भेजे गए ढांचे का उपयोग करता है।
राफेल

त्रुटि आपके निर्माण की प्रक्रिया के लिए सबसे अधिक संभावना है, यह सिर्फ एक मॉड्यूल परिभाषा है ताकि llvm भाषाएं जो कि मॉड्यूल का समर्थन करती हैं, दूसरों के साथ इंटरोप कर सकती हैं, मुझे नहीं लगता कि यह आपके द्वारा अपनी बिल्ड कलाकृतियों को प्रभावित कर सकता है, हो सकता है कि समुदाय मुझे सही कर दे गलत हूँ
परिवेश

55

यहां बताया गया है कि त्वरित सुधार को स्वचालित रूप से कैसे लागू करें ताकि आपको Pods.xcodeprojप्रत्येक के बाद मैन्युअल रूप से बदलना न पड़े pod install

इस स्निपेट को अपने पॉडफाइल के अंत में जोड़ें:

post_install do |installer|
  installer.pods_project.build_configuration_list.build_configurations.each do |configuration|
    configuration.build_settings['CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES'] = 'YES'
  end
end

29

मेरे लिए समाधान लक्ष्य पर जाना था-> सेटिंग का निर्माण-> गैर-मॉड्यूलर को फ्रेमवर्क मॉड्यूल में शामिल करने की अनुमति दें YES!


यहां कोकोपोड्स के साथ भी काम किया। फली
लगाने के

3
मैंने यह कदम उठाया है .. यह थोड़ी देर के लिए काम किया है .. और अब यह काम नहीं कर रहा है ... मैंने पॉड-इंस्टॉल चरण भी शामिल किया है। लेकिन यह अब फिर से विफल हो रहा है। कुछ और मैं जाँच होना चाहिए? मैं GoogleMobileAds.Framework को सार्वजनिक करने के लिए हेडर बदलने के लिए एक विकल्प के रूप में नहीं देख रहा हूं।
माइकल रोवे

यह मेरे लिए काम नहीं किया। अभी भी पार्स के साथ त्रुटि हो रही है। Xcode 7.3.1
C0D3

यह काम करने के लिए यह परिवर्तन करने के बाद मुझे XCode को पुनरारंभ करना पड़ा।
जॉन फाउलर

1
इस सेटिंग को बदलने का क्या प्रभाव है?
nr5

15

मुझे लगता है कि मैं इसके आसपास हो गया हूं। मेरे पास कुछ मॉडल कोड हैं जो एक फ्रेमवर्क में sqlite3 का उपयोग करता है। मेरे मामले में, अपराधी <sqlite3.h> था।

समस्या यह थी कि मेरे मॉड्यूल / मॉड्यूल.ह हेडर में, मैंने एक सार्वजनिक हेडर आयात किया था जो <sqlite3.h> आयात करता था। समाधान सभी sqlite3_xxx प्रकारों को छिपाने और सुनिश्चित करें कि वे किसी भी सार्वजनिक .h में दिखाई नहीं दे रहे थे। Sqlite3 के सभी प्रत्यक्ष संदर्भ निजी या परियोजना दृश्यता बनाए गए थे। उदाहरण के लिए, मेरे पास एक सार्वजनिक सिंगलटन था जिसमें कुछ sqlite3_stmt पॉइंटर्स थे, जो इसे बंद कर रहे थे। मैंने उन लोगों को एक अलग वर्ग में स्थानांतरित कर दिया जो अब केवल उस सार्वजनिक शीर्षक में एक आगे की घोषणा है। अब मैं निर्माण कर सकता हूं।

संयोग से, CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES सेटिंग ने काम नहीं किया। मैंने इसे रूपरेखा और आश्रित परियोजना दोनों में स्थापित करने की कोशिश की। यह वर्कअराउंड आवश्यक था, हालांकि मुझे यकीन नहीं है कि क्यों।


यह पूरी तरह से मदद की! मेरे मामले में, यह प्रतिक्रियाशीलता थी।
डेनियल ब्रिम

4
मुझे पूरा यकीन है कि यह मेरी समस्या का समाधान है जब मैं अपने ढांचे के मॉड्यूल में SSZipArchive को शामिल करने का प्रयास करता हूं। सार्वजनिक शीर्ष लेख <zlib.h> लगा रहा है और वही त्रुटि दे रहा है। क्या आप अपना स्रोत कोड कहीं पोस्ट कर सकते हैं क्योंकि मैं इसे काम करने के लिए संघर्ष कर रहा हूं क्योंकि मैं केवल आपके उत्तर का हिस्सा समझता हूं .. धन्यवाद!
ब्रूस

15

में स्विफ्ट :

1. अपने Xcode प्रोजेक्ट को संशोधित करें और नीचे बताए अनुसार सेटिंग्स बनाएं।

गैर-मॉड्यूलर को फ्रेमवर्क मॉड्यूल में शामिल करने की अनुमति दें: नहीं

बिटकोड सक्षम करें: हाँ

2. Google मेप्स iOS एसडीके के लिए उपलब्ध वर्तमान नवीनतम संस्करण का उपयोग करें (इसे प्राप्त करने के लिए कोकोआपोड्स का उपयोग करें):

GoogleMaps (1.10.4)

3. समस्याग्रस्त आयात टिप्पणी करें:

//import GoogleMaps

4. समस्याग्रस्त आयात को जोड़ते हुए अपनी ब्रिजिंग हेडर फ़ाइल बनाएं या संशोधित करें:

[आपका Xcode प्रोजेक्ट नाम] -ब्रिडिंग-हैडर.एच

// Use this file to import your target's public headers 
// that you would like to expose to Swift.
#import <GoogleMaps/GoogleMaps.h>

5. अपने Xcode प्रोजेक्ट को क्लीन और री-बिल्ड करें।


1
यह बहुत मदद करता है! GoogleMobilAds फ्रेमवर्क (कोकोपोड्स के साथ) के साथ भी बढ़िया काम कर रहा है
bluenowhere

शीर्षक फ़ाइल बनाने के बारे में अधिक विस्तृत जानकारी के लिए, देखें: stackoverflow.com/a/51227304/529663
lenooh

6

यह उत्तर आउट-डेटेड है।

फ्रेमवर्क आयात करते समय, आपको सभी हेडर फ़ाइलों को आयात करना होगा जो रूट हेडर के साथ निर्भरता साझा करते हैं। यह हमेशा काम करता है यह सुनिश्चित करने का सबसे आसान तरीका फ्रेमवर्क के "हेडर" फ़ोल्डर में सभी हेडर को आपके सार्वजनिक हेडर पथ में आयात करना है।

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

स्विफ्ट संकलक इस जानकारी का उपयोग अपने संबंधित प्रकार की जानकारी के साथ-साथ गैर-मंगली प्रतीकों के मानचित्र को उत्पन्न करने के लिए करता है।


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

क्या यह एकमात्र उपाय है? मेरे 6 फ्रेमवर्क हैं और प्रत्येक फ्रेमवर्क में लगभग 20 हेडर हैं। इससे गड़बड़ पैदा होती है। कोई वैकल्पिक?
vivin

1
ज्यादा संभावना। यह शायद अब प्रासंगिक नहीं है क्योंकि यह एक Xcode बग में वर्कअराउंड था।
seo

6

नहीं

#import "MyOtherFramework.h"

करना

#import <MyOtherFramework/MyOtherFramework.h>

3

हेडर फ़ाइल को लक्ष्य के लिए आवंटित किया गया था, लेकिन केवल प्रोजेक्ट दृश्य के रूप में चिह्नित किया गया था, बस इस त्रुटि के समाधान के लिए सार्वजनिक नेतृत्व में बदलाव।


मैं वास्तव में ऐसा कैसे कर सकता हूं? मैं अपने TwitterKit हेडर फ़ाइलों
विनोद सोबले

2

मुझे पता है कि यह एक पुराना प्रश्न है, लेकिन मेरे पास एक ही मुद्दा था और ऊपर से कुछ भी मेरी मदद नहीं करता था। इसलिए मुझे उम्मीद है कि मेरा जवाब किसी के लिए मददगार होगा। मेरे मामले में समस्या ALWAYS_SEARCH_USER_PATHS सेटिंग में थी। जब इसे बनाया गया NO प्रॉजेक्ट के लिए सेट किया गया और ठीक काम किया गया। लेकिन जहां तक ​​पॉड में से एक की आवश्यकता होती है तो इसे YES I पर सेट किया जाना चाहिए, मुझे एक त्रुटि प्राप्त हो रही थी

फ़्रेम मॉड्यूल के अंदर गैर-मॉड्यूलर हेडर शामिल करें

दो कप कॉफी और पूरे दिन के शोध के बाद मुझे पता चला कि Xcode 7.1 बीटा 2 के जारी नोटों के ज्ञात मुद्दों के अनुसार :

• यदि आपको पहले से संकलित ढांचे के लिए "फ्रेम मॉड्यूल के अंदर गैर-मॉड्यूलर हेडर शामिल करें" बताते हुए एक त्रुटि मिलती है, तो सुनिश्चित करें कि "ऑलवेज सर्च यूजर पाथ्स" बिल्ड सेटिंग "नहीं" पर सेट है। डिफ़ॉल्ट "लीगेसी" केवल विरासत कारणों से है। (22784786)

मैं XCode 7.3 का उपयोग कर रहा था, लेकिन ऐसा लगता है कि यह बग अभी तक तय नहीं किया गया है।


इसी से मुझे मदद मिली! मुझे NO पर स्विच करने के बाद कुछ आयातों को बदलना पड़ा, लेकिन अब मैं अपने आवश्यक ढांचे को आयात करने में सक्षम था!
पावेल गुवरोव

2

बिल्ड सेटिंग्स स्विच करना> गैर-मॉड्यूलर को फ्रेमवर्क मॉड्यूल में हां में शामिल करने की अनुमति दें ! मेरे लिए एक ही मुद्दा हल।


2

मैं समस्या के साथ अपने अनुभव को भी जोड़ना चाहूंगा।

बस संक्षेप में:

  • @ एम्बिएंटलाइट का उत्तर बहुत अच्छा है और यह अधिकांश समस्याओं को ठीक करता है।
  • गैर-मॉड्यूलर हेडर की अनुमति देना एक अन्य समाधान है (ऊपर दिए गए कुछ उत्तर देखें)।
  • सार्वजनिक के रूप में फ्रेमवर्क के हेडर को चिह्नित करना (केवल वही जिन्हें आप उजागर करना चाहते हैं) और उन्हें छतरी हेडर में आयात करना।

उपरोक्त उत्तर के लिए मेरे 2 जोड़ हैं:

  • हेडर के लिए अपनी परियोजना में आयातों की सावधानीपूर्वक जांच करें जो सीधे आपके फ्रेमवर्क को उन में आयात करते हैं (आगे की घोषणा का उपयोग करने के बजाय, यदि संभव हो तो) - हेडर फ़ाइल को किसी अन्य हेडर फ़ाइल के अंदर शामिल करना एक अच्छा अभ्यास नहीं है; कभी-कभी यह एक समस्या का कारण बनता है, क्योंकि अगर ठीक से नहीं किया जाता है तो इससे एक हेडर के कई शामिल-अंतर्ग्रहण हो सकते हैं और लिंकर समस्याएं पैदा हो सकती हैं।
  • अद्यतन: सुनिश्चित करें कि पुस्तकालय के आर्किटेक्चर और उस लक्ष्य से जो आप इसे मैच से जोड़ना चाहते हैं।
  • और अंत में, उपरोक्त सभी करने के बाद भी, मैं अभी भी उस त्रुटि से टकरा रहा था। इसलिए मैंने थोड़ा और खोदा और पाया (ऐप्पल डेवलपर फ़ोरम में, लेकिन मैंने लिंक खो दिया :() कि अगर आप हेडर को छाता के हेडर में शामिल करते हैं, तो ऐसा नहीं है <framework/headerName.h>, लेकिन केवल इस तरह से "headerName.h", समस्या दूर हो जाती है।

मैंने इसे अंतिम रूप देने की कोशिश की, और अब तक मैंने इस समस्या का अनुभव नहीं किया है, हालांकि मुझे संदेह है कि यह समाधान केवल तभी मान्य है जब आपने कुछ शीर्ष उत्तर लागू किए हों (ध्यान दें: वे सभी एक दूसरे के साथ संगत नहीं हैं, उदाहरण के लिए , मॉड्यूल दृष्टिकोण और गैर-मॉड्यूलर हेडर की अनुमति शामिल है)।


1

मुझे यह सटीक समस्या थी जब एक परियोजना में अपने ढांचे को शामिल किया। Sqlite3.h की सभी आयातों को सार्वजनिक रूप से नहीं। मुझे लगता है कि अन्य पुस्तकालयों Xcode के साथ इसी तरह के मुद्दों को चिह्नित कर सकते हैं।


1

मुझे फेसबुक 4.02 sdk और FBSDKCoreKit के साथ विशिष्ट समस्या थी।

मैंने सभी कदम उठाए लेकिन फिर भी गैर मॉड्यूलर हेडर के बारे में त्रुटि। i ने चरणों के निर्माण के लिए फ्रेमवर्क से केवल विशिष्ट हेडर को खींचा और गिरा दिया-> हेडर सेक्शन।

फिर स्वचालित रूप से शीर्ष पर प्रोजेक्ट नेविगेटर पर हेडर की एक प्रति बनाई।

मैंने इसे बिल्ड चरणों -> शीर्ष लेख से हटा दिया और नई फ़ाइल को हटा दिया और ठीक काम किया।

जैसे यह रीसेट या कुछ और।


1

मेरे मामले में (Xcode 9 बीटा 6 - स्विफ्ट 4 - कोकोपोड्स का उपयोग करके) यह तब हल किया गया था जब मैंने पॉडफाइल.लॉक और पॉड्स निर्देशिका को हटा दिया और pod installफिर से भाग गया


1

मुझे यह समस्या एक प्रोजेक्ट को अद्यतन करने के बाद मिली थी स्विफ्ट 2 से स्विफ्ट 3 तक। मैं कोड को अद्यतन करने के लिए XCode 8.3.2 का उपयोग कर रहा था और "मॉड्यूल मॉड्यूल के अंदर गैर-मॉड्यूलर हेडर" त्रुटि से छुटकारा नहीं पा सकता था। जब मैंने XCode (संस्करण 9.0.1) के किसी अन्य संस्करण में एक ही प्रोजेक्ट खोला, तो त्रुटि प्रकट नहीं हुई।


0

आमतौर पर यह त्रुटि चुने गए उत्तर के कारण होती है, फिर भी मेरे नए प्रोजेक्ट फ़ोल्डर में फ्रेमवर्क फ़ाइलों को खींचते समय मुझे यह त्रुटि एक बार दिखाई दी थी। मैंने चौखटों को हटाने के लिए क्लिक किया था, लेकिन गलती से केवल 'संदर्भ हटाएं ’को दबाया गया क्योंकि वास्तव में पूरी तरह से फ़ाइलों को हटाने के बजाय ढाँचों को हटा दिया गया था। इस बिंदु पर अगर मैंने फाइंडर में अपना प्रोजेक्ट फ़ोल्डर खोला तो मुझे वहां 'CoreLocation' और 'AudioToolbox' जैसी फाइलें दिखाई दीं। प्रोजेक्ट फ़ोल्डर से इन फ़ाइलों को हटाने और परियोजना की सफाई ने समस्या को ठीक कर दिया।


0

गैर मॉड्यूलर आयात करने की अनुमति देने के बाद, आप उस मॉड्यूल को उद्देश्य-सी ब्रिजिंग हेडर का उपयोग करके आयात करने का प्रयास कर सकते हैं:

#import <YandexMobileMetrica/YandexMobileMetrica.h>

0

मैंने इसे Modulesफ्रेमवर्क से फ़ोल्डर को हटाकर हल किया ।

  • खोजक का उपयोग करके ऐप प्रोजेक्ट में मौजूद अपने फ्रेमवर्क स्थान पर ब्राउज़ करें

  • Test.frameworkफ़ोल्डर के अंदर जाएं (उपरोक्त मामले में यह होगा SOGraphDB.framework) और Modulesफ़ोल्डर हटाएं ।

  • स्वच्छ और फिर से अनुप्रयोग बनाएँ, यह समस्या का समाधान होगा।


-1

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.