wake-up-neo.com

dyld: Bibliothek nicht geladen: @rpath bei iOS8

Ich erstelle ein iOS-Framework mit Xcode6 und iOS8. Wenn ich dies mit einer iOS-App verknüpfe und versuche, sie auf dem Gerät auszuführen, erhalte ich diese Fehlermeldung

dyld: Library not loaded: @rpath/FrameworkName.framework/FrameworkName
  Referenced from: /private/var/mobile/Containers/Bundle/Application/0F2C2461-A68B-4ABA-A604-B88E6E9D1BB1/AppName.app/AppName
  Reason: image not found

Die Buildeinstellung 'Runpath Search Paths' für das Framework ist standardmäßig auf festgelegt 

'@executable_path/Frameworks', '@loader_path/Frameworks'

Ich konnte keine Dokumentation dazu finden. Dies war etwas Neues, das mit Xcode6 eingeführt wurde, und ich würde erwarten, dass es einfach funktioniert, indem das Framework einfach in jede App eingefügt wird, die es benötigt.

48
ArdenDev

Damit dies funktioniert

  1. Ändern Sie in den Projekteinstellungen des Frameworks das Installationsverzeichnis von '/ Library/Frameworks' in '@executable_path /../ Frameworks'.

  2. Fügen Sie im Projekt, in dem dieses Framework enthalten ist, eine Kopierdateienphase hinzu und kopieren Sie dieses Framework in den Ordner "Frameworks". Stellen Sie anschließend sicher, dass dieses Framework im Abschnitt "Eingebettete Binärdateien" aufgeführt ist.

60
ArdenDev

Problem gelöst mit diese Antwort . Laut @ vladof81:

Auf der Registerkarte Allgemein des Ziels befindet sich ein Feld Eingebettete Binärdateien. Wenn Sie das Framework dort hinzufügen, ist der Absturz behoben.

Referenz ist hier in den Apple Entwicklerforen.

26
Tom Howard

Ich habe diesen Fehler bei einer über CocoaPods installierten Bibliothek erhalten. Das Bereinigen des Build-Ordners (cmd + option + shift + k) und das anschließende Bereinigen (cmd + shift + k) hat dieses Problem für mich gelöst.

7
Stunner

Überprüfen Sie, ob Sie das Framework im Kontext finden können:

Phasen erstellen> Embed Frameworks> 

Fügen Sie dieses Framework nicht einfach in "Embed Frameworks" ein, nachdem Sie dieses Framework im Abschnitt "Frameworks" Ihres Projektverzeichnisses hinzugefügt haben.
 enter image description here

3

Für mich war es wegen des SSL-Problems, dass ich meine Entwickler-, Distributionszertifikate auf meinem Mac (Keychain) für ein anderes Projekt auf 'Always Trust' gesetzt hatte. Ich musste sie wieder in "Systemeinstellungen verwenden" ändern. es hat dann für mich funktioniert !!

3
Gee Kay

Wenn Sie Karthago verwenden

Führen Sie carthage update auf dem Terminal aus

Gehen Sie zu Projekteinstellungen -> Erstellungsphasen -> Carthage Copy Frameworks 

Zeile hinzufügen in Eingabedateien : $(SRCROOT)/Carthage/Build/iOS/YOURLIBRARY.framework

Fügen Sie diese Zeile zu Ausgabedateien hinzu: $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/TTTAttributedLabel.framework

2

Überprüfen Sie zusätzlich zu den oben genannten Lösungen die Pfade der in Ihrer Anwendung enthaltenen Frameworks unter 

Build-Einstellungen -> Suchpfade -> Framework-Suchpfade

1
prodeveloper

Wenn keine dieser Lösungen funktioniert:

  1. (Optional) Erhalten Sie ein klares Wissen aus hier über einen anderen Suchpfadentyp
  2. Stellen Sie sicher, dass Ihre .framework-Dateipfade in Build Settings -> Framework Search Paths hinzugefügt werden. Sie können alle Framework-Dateien irgendwo in App/libs/ speichern, diesen Ordner hinzufügen und rekursiv aktivieren.
  3. Stellen Sie sicher, dass Ihre .a-Dateipfade in Build Settings -> Library Search Paths hinzugefügt werden.

 enter image description here

1

Die Bibliothek, die "Nicht geladen" anzeigt, wurde von "" in "Verknüpfte Binärdateien und Frameworks" auf "Optional" geändert. Es funktioniert jetzt perfekt

0
Saranjith

Ich habe mit Cocoapods Bibliotheken von Drittanbietern installiert. Ich habe den gleichen Fehler, habe alles versucht, aber endlich realisiert, dass ich use_frameworks nicht hatte in meiner pod-datei. 

Also die aktuell installierte Bibliothek entfernt und use_frameworks hinzugefügt! Zeile in pod-Datei, installierte die Bibliotheken neu und alles funktionierte für mich.

0
akshayk80

Ich hatte auch das gleiche Problem, dass ich die App nicht starten konnte. Die App stürzte mit der obigen Meldung ab:

dyld: Bibliothek wurde nicht geladen: @ rpath/FrameworkName.framework/FrameworkName Referenziert von:/private/var/mobile/Containers/Bundle/Application/xxxxxxxxxxxxxxxxxxx

Grund: Bild nicht gefunden

Hier ist mein Ansatz, der mir geholfen hat, diesen Fehler zu beheben:

1.Bitte löschen Sie Ihre App vom Gerät. Bereinigen Sie das Erstellen und Wiederherstellen und Ausführen auf dem Gerät.

2.Wenn Ihnen die oben genannten Schritte nicht helfen, überprüfen Sie bitte die folgenden Einstellungen:
Wählen Sie unter "TARGET"> "Build Settings"> "Runpath Search Paths" und prüfen Sie die Werte "$ (vererbt)" & "@ executable_path/Frameworks". Fügen Sie diese hinzu, falls sie nicht vorhanden sind.

Erstellen Sie Ihre App und führen Sie sie auf dem Gerät aus

0
Aks