und - xcode ios 11 large title




iOS App mit Framework abgestürzt auf dem Gerät, dyld: Bibliothek nicht geladen, Xcode 6 Beta (12)

Dieser Absturz war ein Blockierungsproblem. Ich habe die folgenden Schritte verwendet, um das Problem zu reproduzieren:

  • Erstellen Sie ein Cocoa Touch Framework-Projekt
  • Fügen Sie eine schnelle Datei und eine Klasse Hund hinzu
  • Erstellen Sie Framework für das Gerät
  • Erstellen Sie eine Single View-Anwendung in Swift
  • Importieren Sie das Framework in das App-Projekt
  • Instanziieren Sie Swift-Klasse aus dem Framework in ViewController
  • Erstellen und starten Sie die App auf dem Gerät

Die App ist beim Starten sofort abgestürzt, hier ist das Konsolenprotokoll:

dyld: Library not loaded: @rpath/FrameworkTest03.framework/FrameworkTest03
  Referenced from: /var/mobile/Applications/FA6BAAC8-1AAD-49B4-8326-F30F66458CB6/FrameworkTest03App.app/FrameworkTest03App
  Reason: image not found

Ich habe versucht, auf iOS 7.1 und 8.0 Geräten zu bauen, beide haben den gleichen Absturz. Allerdings kann ich App bauen und auf Simulator gut laufen. Auch ich bin mir bewusst, dass ich das Framework in Link Binary mit Bibliotheken von Erforderlich zu Optional ändern kann, aber es das Problem nicht vollständig gelöst, die App abgestürzt, wenn ich eine Instanz von Dog erstellen. Das Verhalten ist auf Gerät und Simulator unterschiedlich. Ich vermute, dass wir das Framework für das Gerät nicht mit der Beta-Version von Xcode verteilen können. Kann jemand das aufklären?


Für iOS größer oder gleich 8

Fügen Sie auf der Registerkarte Allgemein des Ziels im Bereich Embedded Binaries das Framework hinzu. Dadurch wird das Framework in das Kompilierte kopiert, sodass es zur Laufzeit verknüpft werden kann.

Warum passiert dies? : weil das Framework, zu dem Sie verlinken, als dynamisch verknüpftes Framework kompiliert und somit zur Laufzeit verknüpft ist.

Hinweis: Das Einbetten benutzerdefinierter Frameworks wird nur in iOS> 8 unterstützt und daher folgt eine alternative Lösung, die auf älteren iOS-Versionen funktioniert.

Für iOS weniger als 8

Wenn Sie Einfluss auf dieses Framework haben (Zugriff auf den Quellcode / Build-Prozess), können Sie dieses Framework so ändern, dass es statisch verknüpft ist und nicht dynamisch verknüpft ist. Dies führt dazu, dass der Code in Ihre kompilierte Anwendung aufgenommen und nicht zur Laufzeit verknüpft wird, sodass das Framework nicht eingebettet werden muss.

Wie: Auf der Registerkarte "Build Setting" des Frameworks im Abschnitt "Linking" ändern Sie den Mach-O-Typ in "Static Library". Sie sollten das Framework jetzt nicht mehr in eingebettete Binärdateien einschließen.

Assets einbeziehen : Um Dinge wie Bilder, Audio oder Xib / Nib-Dateien einzuschließen, empfehle ich, ein Bundle zu erstellen (im Wesentlichen ein Verzeichnis, mehr Informationen hier bit.ly/ios_bundle) und dann die Assets aus dem Bundle mit NSBundle zu laden.


  1. Gehe zur Datei in xcode -> Workspace Einstellungen
  2. Klicken Sie auf den Pfeil neben dem / Benutzer / apple / Library / Developer / Xcode / DerivedData
  3. Wählen Sie die abgeleiteten Daten und verschieben Sie sie in den Papierkorb.
  4. Ziemlich der xcode und wieder öffnen.
  5. Säubern Sie das Projekt und führen Sie es erneut aus.

Die obigen Schritte haben meine Probleme gelöst.


Auf der Registerkarte Allgemein des Ziels befindet sich das Feld Eingebettete Binärdateien . Wenn Sie das Framework dort hinzufügen, wird der Absturz gelöst.

Referenz finden Sie here in den Apple Entwicklerforen.


Fügen Sie das Framework in Eingebettete Binärdateien hinzu

Dann bereinigen und bauen.



Ich habe das gleiche Problem in iOS 9.x Version

ISSUE IS: App crashes as soon as I open the app with below error.

dyld: Library not loaded: /System/Library/Frameworks/UserNotifications.framework/UserNotifications Referenced from: /var/containers/Bundle/Application/######/TestApp.app/TestApp Reason: image not found

Ich habe dieses Problem gelöst, indem ich die Optional Required zu Optional in Linked Frameworks and Libraries für Linked Frameworks and Libraries für UserNotifications.framework .


Ich habe mit Swift3 / Xcode 8.1 ein Framework erstellt und es in einem Objective-C / Xcode 8.1-Projekt konsumiert. Um dieses Problem zu beheben, musste ich die Option Always Embed Swift Standard Libraries unter Build Options .

Schau dir diesen Screenshot an:

Ich hoffe, das hilft!


Ich hatte das gleiche Problem. Ich habe versucht, mein Projekt mit einem iPhone zu erstellen, das ich vorher noch nie benutzt habe, und ich habe kein neues Framework hinzugefügt. Für mich funktionierte die Reinigung gut ( Umschalt + Befehl + K ). Vielleicht liegt es daran, dass ich Beta 5 von Xcode 7 und ein iPhone 6 mit iOS 9 Beta verwende, aber es hat funktioniert.


In meinem Fall bestand die Lösung darin, das kompilierte Framework aus den Embedded Binaries zu entfernen, das ein eigenständiges Projekt im Arbeitsbereich war, zu säubern und neu zu erstellen und schließlich zu Embedded Binaries hinzuzufügen.


Meine Umgebung: Cocos2d 2.0, Box2d, Ziel C

Zusätzlich zu den anderen oben genannten Antworten ging ich schließlich zur Registerkarte "Allgemein" und machte WatchKit optional.


Versuchen Sie zunächst, nach Befehl + Wahl + Umschalt + K zu bauen. Wenn das immer noch fehlschlägt, führen Sie die folgenden Schritte aus.

Wenn jemand mit diesem Fehler in Xcode 8 konfrontiert wird, dann ändern Sie Ihren Framework-Status auf der Registerkarte Allgemein des Ziels in Optional statt Erzwungen.


Wenn Entwicklungs-Pod haben Löschen Sie Ihre App von Simulator-Installation von Pod -> sauber -> erneut ausführen ...





xcode6