673 Stimmen

IOS-App mit Framework ist auf dem Gerät abgestürzt, dyld: Bibliothek nicht geladen, Xcode 6 Beta

Dieser Absturz war ein blockierendes Problem. Ich habe die folgenden Schritte zur Reproduktion des Problems verwendet:

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

Die App stürzte sofort beim Start ab. Hier ist der Konsolen-Log:

dyld: Library not loaded: @rpath/FrameworkTest03.framework/FrameworkTest03
  Referenziert von: /var/mobile/Applications/FA6BAAC8-1AAD-49B4-8326-F30F66458CB6/FrameworkTest03App.app/FrameworkTest03App
  Grund: Bild nicht gefunden

Ich habe versucht, auf iOS 7.1 und 8.0 Geräten zu bauen. Sie haben beide den gleichen Absturz. Allerdings kann ich eine App erstellen und auf dem Simulator ausführen. Außerdem bin ich mir bewusst, dass ich das Framework von Erforderlich auf Optional in Link Binary With Libraries ändern kann, aber das hat das Problem nicht vollständig gelöst. Die App stürzt ab, wenn ich eine Instanz von Dog erstelle. Das Verhalten ist auf dem Gerät und dem Simulator unterschiedlich. Ich vermute, dass wir kein Framework für das Gerät mit einer Beta-Version von Xcode verteilen können. Kann jemand Licht ins Dunkel bringen?

8voto

Shohin Punkte 383

Bildbeschreibung hier eingeben

Für mich gelöst, indem ich "Nur kopieren bei Installation" in den Build-Phasen->Frameworks einbetten abgewählt habe

5voto

Stéphane de Luca Punkte 11632

Für jedes Projekt oder Framework-Projekt in Xcode, das Pods verwendet, ist ein einfacher Weg, um zu vermeiden, dass die dynamische Bibliothek (dylb) nicht geladen wird, den Pod-Datei auf den statischen Modus einzustellen. Dazu stellen Sie einfach sicher, dass Sie die folgende Zeile nicht in Ihre Pod-Datei schreiben.

use_frameworks!

Nachdem die Zeile aus Ihrer gespeicherten Datei gelöscht wurde, führen Sie einfach vom Terminal aus aus:

$ pod update

5voto

henrik-dmg Punkte 1446

Ich hatte das gleiche Problem. Ich habe versucht, mein Projekt mit einem iPhone zu erstellen, das ich noch nie zuvor benutzt hatte, und habe kein neues Framework hinzugefügt. Für mich hat das Aufräumen gut funktioniert (Shift+Command+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.

4voto

User18474728 Punkte 319

In meinem Fall ist mein Projekt in Objective-C geschrieben und in der Bibliothek gibt es Swift-Dateien. Also habe ich "Always Embed Swift Standard Libraries" in meinem Projekt im Build-Einstellungen Tab auf Ja geändert und es hat sich vollkommen in Ordnung.

3voto

Alex.Pinhasov Punkte 116

Für mich musste ich das XcodeKit.framework von "Nicht einbetten" auf "Einbetten & Signieren" umschalten

Bildbeschreibung hier eingeben

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X