dyld: Library not loaded: @rpath/libswiftCore.dylib: Wie man den Fehler behebt

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

„Schwupps – und die App ist abgestürzt“: Wir lernen dyld: Library not loaded: @rpath/libswiftCore.dylib kennen

\n\n

Haben Sie jemals Ihre Swift-App gestartet, einen schönen Splash-Screen gesehen und dann – bumm! – einen schwarzen Bildschirm und eine Konsole voller roter Buchstaben? Kommt Ihnen bekannt vor? Wenn Sie schon einmal auf die Meldung dyld: Library not loaded: @rpath/libswiftCore.dylib gestoßen sind, kennen Sie dieses Gefühl leichter Panik. Auf Stack Overflow hat diese Frage tausende Aufrufe, und das zu Recht: Der Fehler ist tückisch, aber durchaus lösbar.

\n\n

In diesem Artikel geben wir nicht nur eine trockene Anleitung. Wir erklären, warum Swift-Bibliotheken zur Laufzeit „verloren gehen“, wie man das vermeidet und was zu tun ist, wenn man bereits hineingeraten ist. Los geht‘s!

\n\n

Was ist dyld und warum ist es verärgert?

\n\n

dyld (Dynamic Link Editor) ist der Lader für dynamische Bibliotheken unter macOS und iOS. Wenn Ihre App startet, sucht dyld alle benötigten Bibliotheken an den im Binärprogramm angegebenen Pfaden. Einer dieser Pfade ist @rpath (Runtime Search Path). Wenn die Bibliothek (z.B. libswiftCore.dylib) an diesem Pfad nicht gefunden wird, stürzt dyld mit einem Fehler ab.

\n\n

Einfach ausgedrückt: Sie haben der App gesagt „hol das Buch vom Regal @rpath“, aber das Regal war leer. Das ist die ganze Detektivarbeit.

\n\n

Warum passiert das gerade mit libswiftCore.dylib?

\n\n

libswiftCore.dylib ist der Kern der Swift-Laufzeitumgebung. Ohne sie funktioniert kein Swift-Code. Der Fehler tritt am häufigsten in drei Fällen auf:

\n\n
    \n
  • Sie verwenden Xcode 14+ und das Projekt ist auf eine alte Swift-Version eingestellt.
  • \n
  • Sie binden Frameworks oder CocoaPods ein, die eine bestimmte Version der Swift-Laufzeitumgebung erfordern.
  • \n
  • Sie haben vergessen, „Always Embed Swift Standard Libraries“ in den Buildeinstellungen zu aktivieren.
  • \n
\n\n

5 Möglichkeiten, dyld: Library not loaded: @rpath/libswiftCore.dylib zu beheben

\n\n

Kommen wir zur Praxis. Im Folgenden finden Sie bewährte Methoden, vom Einfachen zum Komplexen. Für jede gebe ich ein Beispiel für Code oder Einstellungen.

\n\n

1. Aktivieren Sie „Always Embed Swift Standard Libraries“

\n\n

Der häufigste Übeltäter. Wenn Ihre App die Swift-Bibliotheken nicht in das Bundle einbettet, findet dyld sie auf dem Gerät nicht.

\n\n

So beheben Sie es:

\n
    \n
  1. Öffnen Sie das Projekt in Xcode.
  2. \n
  3. Wählen Sie Target → Build Settings.
  4. \n
  5. Suchen Sie Always Embed Swift Standard Libraries.
  6. \n
  7. Setzen Sie den Wert auf Yes.
  8. \n
\n\n

Wenn Sie CocoaPods verwenden, überprüfen Sie, ob in der Podfile keine Zeile vorhanden ist, die dieses Verhalten deaktiviert:

\n\n
# Schlecht (kann den Fehler verursachen)\npost_install do |installer|\n  installer.pods_project.targets.each do |target|\n    target.build_configurations.each do |config|\n      config.build_settings['ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES'] = 'NO'\n    end\n  end\nend\n\n# Gut\npost_install do |installer|\n  installer.pods_project.targets.each do |target|\n    target.build_configurations.each do |config|\n      config.build_settings['ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES'] = 'YES'\n    end\n  end\nend\n
\n\n

2. Überprüfen Sie die Kompatibilität der Swift-Versionen

\n\n

Wenn Sie ein Framework eingebunden haben, das für Swift 5.7 kompiliert wurde, Ihr Projekt aber auf Swift 5.5 basiert – hallo, Fehler. Die Swift-Laufzeitumgebung ist nicht „zu 100 %“ abwärtskompatibel.

\n\n

Lösung: Stellen Sie sicher, dass alle Abhängigkeiten dieselbe Swift-Version verwenden. Öffnen Sie das Terminal und führen Sie Folgendes aus:

\n\n
# Swift-Version für ein bestimmtes .framework ermitteln\nstrings MyFramework.framework/MyFramework | grep "Swift"\n# Oder über xcrun prüfen\nxcrun swift --version\n
\n\n

Wenn das Framework für eine andere Version kompiliert wurde – bauen Sie es neu oder aktualisieren Sie es.

\n\n

3. Bereinigen Sie Derived Data und bauen Sie das Projekt neu

\n\n

Manchmal speichert Xcode alte Pfade zu Bibliotheken zwischen. Ein vollständiger Neubau behebt das Problem oft.

\n\n
# Derived Data manuell löschen\nrm -rf ~/Library/Developer/Xcode/DerivedData                

Blogs

Buchempfehlungen