«No such module»: Der vertraute Albtraum eines jeden Swift-Entwicklers
\n\nSie fügen ein Framework über SPM, CocoaPods oder manuell hinzu, sehen es im Project Navigator, alles sieht perfekt aus – aber Xcode schreibt stur: No such module 'Alamofire' (oder ein beliebiges anderes Modul). Kommt Ihnen das bekannt vor? Wenn ja, sind Sie nicht allein. Die ursprüngliche Frage auf Stack Overflow hat zehntausende Aufrufe gesammelt, und die Kommentare dazu haben sich zu einer wahren Sammlung der Schmerzen von iOS-Entwicklern entwickelt.
In diesem Artikel analysieren wir 10 reale Ursachen, warum der Fehler No such module auftritt, und zeigen, wie man sie behebt. Am Ende erwartet Sie eine Checkliste, die Stunden an Nerven spart.
Warum sieht Xcode das Modul nicht? Die Top-10 Ursachen
\n\n1. Derived Data – der Hauptschuldige
\nXcode speichert Projektinformationen im Ordner Derived Data zwischen. Wenn der Cache veraltet oder beschädigt ist, «vergisst» der Compiler die eingebundenen Module. Das ist das Erste, was überprüft werden sollte.
\n\nSo beheben Sie es:
\n- \n
- Schließen Sie Xcode \n
- Öffnen Sie das Terminal und führen Sie aus:\n
\nrm -rf ~/Library/Developer/Xcode/DerivedData\n - Oder manuell: Xcode → Preferences → Locations → Derived Data → auf den Pfeil klicken → Ordner löschen \n
- Starten Sie Xcode neu und führen Sie
Cmd + Baus \n
2. Falsche Konfiguration der Build Phases
\nAuch wenn das Framework physisch im Projekt vorhanden ist, weiß Xcode möglicherweise nicht, dass es gelinkt werden muss. Überprüfen Sie Link Binary With Libraries:
\n- \n
- Wählen Sie das Target → Build Phases \n
- Klappen Sie Link Binary With Libraries auf \n
- Stellen Sie sicher, dass Ihr Framework dort aufgeführt ist \n
- Falls nicht – klicken Sie auf
+und fügen Sie es hinzu \n
3. Swift Package Manager: Falscher Branch oder Version
\nSPM ist ein praktisches Werkzeug, reagiert aber empfindlich auf Versionen. Wenn Sie from: "1.0.0" angegeben haben, das Repository aber Version 2.0.0 enthält, findet Xcode möglicherweise kein kompatibles Modul.
// Beispiel Package.swift\ndependencies: [\n .package(url: "https://github.com/Alamofire/Alamofire.git", from: "5.6.0")\n]\n\nWas tun:
\n- \n
- Gehen Sie zu File → Packages → Update to Latest Package Versions \n
- Wenn das Problem bestehen bleibt – entfernen Sie das Framework und fügen Sie es erneut hinzu \n
- Überprüfen Sie Package Dependencies im Projekt – das Modul sollte grün sein \n
4. Architekturkonflikt (Architectures)
\nÄltere Frameworks sind möglicherweise nur für arm64 kompiliert, während Ihr Projekt den Simulator (x86_64) einschließt. Seit dem Aufkommen von Apple Silicon ist dies eine häufige Ursache.
\n\nLösung: Fügen Sie in Build Settings → Excluded Architectures für den Debug-Build hinzu:
\n- \n
- Für den Simulator:
arm64\n - Für das Gerät:
$(ARCHS_STANDARD)\n
5. Falscher Suchpfad (Framework Search Paths)
\nWenn Sie ein Framework manuell hinzufügen, muss Xcode wissen, wo es zu suchen ist. Überprüfen Sie Framework Search Paths:
\n- \n
- Build Settings → Framework Search Paths \n
- Stellen Sie sicher, dass der Pfad zum Ordner mit
.frameworkoder.xcframeworkführt \n - Für SPM muss normalerweise nichts angegeben werden, aber für manuelle Frameworks ist es zwingend erforderlich \n
6. Framework nicht zu allen Targets hinzugefügt
\nEin Projekt kann mehrere Targets haben (Haupt-App, Widgets, Erweiterungen). Wenn Sie das Modul nur zu einem hinzugefügt haben, sehen die anderen Targets es nicht.
\n\nÜberprüfung: Wählen Sie das Framework im Project Navigator → Inspektor rechts → Target Membership – markieren Sie alle benötigten Targets.
\n\n7. Probleme mit CocoaPods (falls verwendet)
\nCocoaPods ist ein Klassiker, aber manchmal wird das Framework nach pod install nicht übernommen.