Xcode meckert «No such module», obwohl das Framework vorhanden ist: Was tun?

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

«No such module»: Der vertraute Albtraum eines jeden Swift-Entwicklers

\n\n

Sie 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.

\n\n

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.

\n\n

Warum sieht Xcode das Modul nicht? Die Top-10 Ursachen

\n\n

1. Derived Data – der Hauptschuldige

\n

Xcode 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\n

So beheben Sie es:

\n
    \n
  • Schließen Sie Xcode
  • \n
  • Öffnen Sie das Terminal und führen Sie aus:\n
    rm -rf ~/Library/Developer/Xcode/DerivedData
    \n
  • \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 + B aus
  • \n
\n\n

2. Falsche Konfiguration der Build Phases

\n

Auch 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
\n\n

3. Swift Package Manager: Falscher Branch oder Version

\n

SPM 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.

\n\n
// Beispiel Package.swift\ndependencies: [\n    .package(url: "https://github.com/Alamofire/Alamofire.git", from: "5.6.0")\n]
\n\n

Was 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
\n\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\n

Lö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
\n\n

5. Falscher Suchpfad (Framework Search Paths)

\n

Wenn 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 .framework oder .xcframework führt
  • \n
  • Für SPM muss normalerweise nichts angegeben werden, aber für manuelle Frameworks ist es zwingend erforderlich
  • \n
\n\n

6. Framework nicht zu allen Targets hinzugefügt

\n

Ein 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\n

7. Probleme mit CocoaPods (falls verwendet)

\n

CocoaPods ist ein Klassiker, aber manchmal wird das Framework nach pod install nicht übernommen.

Blogs

Buchempfehlungen