Xcode त्रुटि दे रहा है «No such module», जबकि फ्रेमवर्क मौजूद है: क्या करें?

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

«No such module»: हर Swift डेवलपर का जाना-पहचाना दुःस्वप्न

\n\n

आप SPM, CocoaPods या मैन्युअल रूप से फ्रेमवर्क जोड़ते हैं, इसे Project Navigator में देखते हैं, सब कुछ सही लगता है — लेकिन Xcode हठपूर्वक लिखता है: No such module 'Alamofire' (या कोई अन्य मॉड्यूल)। परिचित लगता है? यदि हाँ — तो आप अकेले नहीं हैं। Stack Overflow पर मूल प्रश्न ने दसियों हज़ार बार देखा गया है, और इसकी टिप्पणियाँ iOS डेवलपर्स के दर्द का एक वास्तविक संग्रह बन गई हैं।

\n\n

इस लेख में हम 10 वास्तविक कारणों पर चर्चा करेंगे जिनकी वजह से No such module त्रुटि होती है, और दिखाएंगे कि उन्हें कैसे ठीक किया जाए। अंत में आपके लिए एक चेकलिस्ट होगी जो घंटों की निराशा बचाएगी।

\n\n

Xcode मॉड्यूल क्यों नहीं देखता? शीर्ष 10 कारण

\n\n

1. Derived Data — मुख्य दोषी

\n

Xcode प्रोजेक्ट की जानकारी को Derived Data फ़ोल्डर में कैश करता है। यदि कैश पुराना या दूषित है, तो कंपाइलर जुड़े हुए मॉड्यूल को "भूल" जाता है। यह पहली चीज़ है जिसे जाँचना चाहिए।

\n\n

कैसे ठीक करें:

\n
    \n
  • Xcode बंद करें
  • \n
  • टर्मिनल खोलें और चलाएँ:\n
    rm -rf ~/Library/Developer/Xcode/DerivedData
    \n
  • \n
  • या मैन्युअल रूप से: Xcode → Preferences → Locations → Derived Data → तीर पर क्लिक करें → फ़ोल्डर हटाएँ
  • \n
  • Xcode को पुनरारंभ करें और Cmd + B दबाएँ
  • \n
\n\n

2. Build Phases की गलत कॉन्फ़िगरेशन

\n

भले ही फ्रेमवर्क भौतिक रूप से प्रोजेक्ट में मौजूद हो, Xcode को पता नहीं हो सकता कि इसे लिंक करने की आवश्यकता है। Link Binary With Libraries जाँचें:

\n
    \n
  • लक्ष्य (target) चुनें → Build Phases
  • \n
  • Link Binary With Libraries का विस्तार करें
  • \n
  • सुनिश्चित करें कि आपका फ्रेमवर्क वहाँ है
  • \n
  • यदि नहीं है — + दबाएँ और इसे जोड़ें
  • \n
\n\n

3. Swift Package Manager: गलत शाखा या संस्करण

\n

SPM एक सुविधाजनक उपकरण है, लेकिन यह संस्करणों के प्रति संवेदनशील है। यदि आपने from: "1.0.0" निर्दिष्ट किया है, और रिपॉजिटरी में संस्करण 2.0.0 है, तो Xcode को संगत मॉड्यूल नहीं मिल सकता है।

\n\n
// Package.swift का उदाहरण\ndependencies: [\n    .package(url: "https://github.com/Alamofire/Alamofire.git", from: "5.6.0")\n]
\n\n

क्या करें:

\n
    \n
  • File → Packages → Update to Latest Package Versions पर जाएँ
  • \n
  • यदि समस्या बनी रहती है — फ्रेमवर्क हटाएँ और फिर से जोड़ें
  • \n
  • प्रोजेक्ट में Package Dependencies जाँचें — मॉड्यूल हरे रंग का होना चाहिए
  • \n
\n\n

4. आर्किटेक्चर का विरोध (Architectures)

\n

पुराने फ्रेमवर्क केवल arm64 के लिए बनाए गए हो सकते हैं, जबकि आपका प्रोजेक्ट सिम्युलेटर (x86_64) शामिल करता है। Apple Silicon के आने से यह एक सामान्य कारण बन गया है।

\n\n

समाधान: Debug बिल्ड के लिए Build Settings → Excluded Architectures में जोड़ें:

\n
    \n
  • सिम्युलेटर के लिए: arm64
  • \n
  • डिवाइस के लिए: $(ARCHS_STANDARD)
  • \n
\n\n

5. गलत खोज पथ (Framework Search Paths)

\n

यदि आप मैन्युअल रूप से फ्रेमवर्क जोड़ रहे हैं, तो Xcode को पता होना चाहिए कि इसे कहाँ खोजना है। Framework Search Paths जाँचें:

\n
    \n
  • Build Settings → Framework Search Paths
  • \n
  • सुनिश्चित करें कि पथ .framework या .xcframework वाले फ़ोल्डर की ओर जाता है
  • \n
  • SPM के लिए आमतौर पर कुछ भी निर्दिष्ट करने की आवश्यकता नहीं है, लेकिन मैन्युअल फ्रेमवर्क के लिए यह अनिवार्य है
  • \n
\n\n

6. फ्रेमवर्क सभी लक्ष्यों में नहीं जोड़ा गया

\n

प्रोजेक्ट में कई टार्गेट (मुख्य ऐप, विजेट, एक्सटेंशन) हो सकते हैं। यदि आपने मॉड्यूल केवल एक में जोड़ा है, तो अन्य टार्गेट इसे नहीं देखेंगे।

\n\n

जाँच: Project Navigator में फ्रेमवर्क चुनें → दाईं ओर इंस्पेक्टर → Target Membership — सभी आवश्यक लक्ष्यों को चिह्नित करें।

\n\n

7. CocoaPods के साथ समस्याएँ (यदि उपयोग कर रहे हैं)

\n

CocoaPods एक क्लासिक है, लेकिन कभी-कभी pod install के बाद फ्रेमवर्क नहीं उठाया जाता है।

ब्लॉग

पुस्तक अनुशंसाएँ