'Framework nicht gefunden' in Xcode


75

Ich weiß, dass dies ein paar Mal gefragt wurde. Ich habe die Anweisungen von diesen befolgt:

Hinzufügen von Frameworks zum Projekt in Xcode 5 und Hinzufügen von * relativen * Pfaden

xcode4: Linker-Fehler: Verzeichnis für Option nicht gefunden

Trotzdem gibt Xcode diesen Fehler aus:

Geben Sie hier die Bildbeschreibung ein

Hier ist meine aktuelle Konfiguration:

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Das Schrauben-Framework ist so, dass ich das Parse SDK verwenden kann. Ich habe das leere Projekt von hier heruntergeladen: https://parse.com/apps/quickstart#parse_data/mobile/ios/native/new

Es funktioniert. Ich habe versucht, jede Konfigurationsoption zu kopieren, aber es funktioniert immer noch nicht.


Sie könnten stattdessen Cocoapods verwenden. github.com/ParsePlatform/Parse-SDK-iOS-OSX
BenJammin

Antworten:


75

Versuchen Sie, das Bolts.frameworkverknüpfte Framework zu löschen, und fügen Sie es erneut hinzu. Auch in Ihrem Framework Search Pathkeep Weg , bis Bolts.frameworkwie $(PROJECT_DIR)/Boltswenn es in Bolts Ordner in Ihrem Projektverzeichnis Pfad ist.


1
Gehen Sie für den Framework-Suchpfad zu Ihrem Projekt, wählen Sie Ihr Ziel aus und gehen Sie dann zum Erstellen von Einstellungen. Suchen frameworkSie, bis der Framework-Suchpfad fett gedruckt ist.
George_E

23

Ich bin ziemlich neu in der iOS-Entwicklung. Anscheinend war dieses Problem für mich das Ergebnis des Öffnens des Xcode-Projekts .xcodeproj anstelle des Xcode-Arbeitsbereichs .xcworkspace. Ich habe stattdessen den Arbeitsbereich geöffnet und der Fehler ist behoben.


Dies löst das Problem für mich, aber wenn ich den Arbeitsbereich öffne, kann ich nur die Datei ViewController.class sehen. Wenn ich versuche, die anderen Dateien zu öffnen, werden sie in einer Seitenansicht geöffnet, die xib-Dateien nicht richtig lesen kann. Kennen Sie eine Lösung dafür?
Sam

8

Löschen Sie alle Frameworks aus den eingebetteten Binärdateien und fügen Sie sie erneut hinzu


5

Hier ist die Lösung:

Verwandeln Sie das Attribut "$ (PROJECT_DIR)" (möglicherweise standardmäßig nicht rekursiv) in eine rekursive Option in Projekt auswählen. Klicken Sie auf Ziele. Klicken Sie auf "Einstellungen erstellen". Suchen Sie nach "Framework-Suchpfad". - Doppelklicken Sie auf die Eingabe.

Verkratzt von https://stackoverflow.com/a/31298214/4493512


5

Auch ich habe diesen Fehler erhalten. Ich habe die Framework-Datei in den Stammprojektordner verschoben und erneut zum Framework hinzugefügt, und das Problem ist behoben.


4

Ich hatte gerade die gleiche Situation (es fiel mir schwer, den Build-Fehler des OP zu beheben, nachdem ich ein Framework eines Drittanbieters hinzugefügt hatte) und es scheint ein Fehler zu sein Xcode(meiner ist 8.3.2 (8E2002)).

Das Problem war, dass ein Ordnername im Pfad zum Framework Leerzeichen enthielt. In diesem Fall hat Xcode sie fälschlicherweise mit Backslashes wie dem folgenden entgangen Build Settings -> Framework Search Paths:

$(PROJECT_DIR)/Folder\ with\ spaces/Lib

Um dies zu beheben, bearbeiten Sie den Eintrag einfach manuell, um diese Backslashes zu entfernen, und schließen Sie die gesamte Zeichenfolge in Anführungszeichen wie folgt ein:

"$(PROJECT_DIR)/Folder with spaces/Lib"

4

Löschen Sie das Framework, das das Problem verursacht (indem Sie den Verweis entfernen).

Fügen Sie es dann erneut hinzu, indem Sie die folgenden Schritte ausführen, um FBSDK-Frameworks und -Bibliotheken hinzuzufügen:

  1. Klicken Sie auf Projekt
  2. Allgemeine Einstellungen
  3. verknüpftes Framework und Bibliotheken
  4. Klicken Sie auf das Pluszeichen und fügen Sie alles hinzu, was Sie möchten

Ich hätte gedacht, dass dies von selbst funktionieren würde, aber selbst danach musste ich das Kontrollkästchen "Zielmitgliedschaft" deaktivieren, Produkt> Bereinigen ausführen und dann das Kontrollkästchen Zielmitgliedschaft erneut aktivieren.
Michael

3

Neben dem Entfernen des Frameworks aus dem Podfileund Linked Frameworks and Librariesmusste ich auch den Verweis auf das Framework in entfernen Other Linker Flags.


3

Keiner der oben genannten Punkte funktionierte für mich, bis ich feststellte, dass unter den Framework-Suchpfaden / Debugging unter Build-Einstellungen eine leere Zeile "Any Architecture | Any SDK" angezeigt wurde.

Zeile gelöscht und es funktioniert!


3
  1. Löschen Sie den Framework-Link aus der Xcode-Projekteinstellung.
  2. Verschieben Sie das Framework in den Projektordner.
  3. Fügen Sie das Framework in der Xcode-Projekteinstellung erneut hinzu.
  4. Bereinigen Sie das Projekt und kompilieren Sie es neu.

Der wichtige Teil dieser Anweisungen für mich war, dass Xcode beim Verschieben meines Frameworks in meinen Projektordner, anstatt es an einer anderen Stelle in meinem Dateisystem zu speichern, automatisch den übergeordneten Ordner Framework Search Pathsdes Frameworks zur Build-Einstellung meines Ziels hinzufügte, wenn ich das Framework erneut hinzufügte das Ziel in Xcode. Ich habe beschlossen, Frameworksmeinem Projekt einen Ordner hinzuzufügen, sodass mein Ziel einen Framework Search PathsEintrag wie folgt enthält : "$(PROJECT_DIR)/Frameworks".
Adil Hussain

2

1: - Löschen Sie das Framework aus dem Xcode-Projekt. Beenden Sie den Xcode.

2: - Öffnen Sie Ihr Projekt in XCode und gehen Sie zu Datei unter Menü und wählen Sie Dateien zu "YourProjectName" hinzufügen.

Geben Sie hier die Bildbeschreibung ein

3: - Wählen Sie "YourFramwork.framework" in dem Verzeichnis, in dem Sie es aufbewahren.

4: - Aktivieren Sie das Kontrollkästchen Elemente bei Bedarf kopieren.

5: - Klicken Sie auf Hinzufügen.

Geben Sie hier die Bildbeschreibung ein

Stellen Sie sicher, dass Sie das Framework sowohl in eingebetteten Binärdateien als auch in verknüpften Frameworks und Bibliotheken unter Zieleinstellungen - Allgemein hinzugefügt haben. Wie in den folgenden Bildern gezeigt: -

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein


Der wichtige Teil dieser Anweisungen für mich war, dass Xcode beim Kopieren des Frameworks in mein Projekt vor dem Hinzufügen zu meinem Ziel automatisch einen Eintrag in der Framework Search PathsBuild-Einstellung meines Ziels hinzufügte . Ich habe beschlossen, das Framework in einen FrameworksOrdner in meinem Projekt zu kopieren, sodass mein Ziel einen Framework Search PathsEintrag wie folgt hatte : "$(PROJECT_DIR)/Frameworks".
Adil Hussain

2

Wenn Sie CocoaPods verwenden, versuchen Sie es auszuführen

pod deintegrate
pod update

1

Als dieser Fehler bei mir auftrat, war der Pods-Ordner in iCloud und hatte keine lokale Kopie auf meinem Computer. Gehen Sie im Finder zum Ordner Ihres Projekts und überprüfen Sie, ob sich in einem der darin enthaltenen Ordner das iCloud-Symbol befindet!


1

Mir wurde klar, dass ich mein Framework nicht mit dem ausgeführt hatte Generic Device, was seltsamerweise zu diesen Problemen führte. Ich habe das Framework einfach wieder eingebaut und es hat funktioniert.


0

Mein Framework hat einen langen Namen wie FrameworkSDK_Light-1.0.6.framework, daher habe ich es in FrameworkSDK_Light.framework umbenannt und mein Problem gelöst.


0

Ich habe den Fehler "AdBrixRM-Framework nicht gefunden" erhalten. Ich habe das AdBrixRM.framework überprüft. Ich habe festgestellt, dass die Auslassungsdatei 'AdBrixRM' fehlt. Ich habe diese Datei in den Framework-Ordner kopiert und das Problem war behoben.


0

Genau dieses Problem hatte ich in der Vergangenheit mit dem Google Admob SDK. Zuletzt geschah dies beim Versuch, gültige Bibliotheken hinzuzufügen. Ich habe diesmal auch den gleichen guten Trick ausprobiert und es hat im Handumdrehen funktioniert.

1) Entfernen Sie die Frameworks , falls bereits hinzugefügt.

2) Suchen Sie das Framework im Finder und ziehen Sie es per Drag & Drop direkt in den Projektnavigatorbereich unter Ihrem Projektbaum.

3) Erstellen Sie das Projekt und Whooo!

Ich bin mir nicht sicher, was den Unterschied ausmacht, aber das Hinzufügen der Frameworks über den offiziellen Weg zum Abschnitt "Verknüpfte Frameworks und Bibliotheken" auf der Seite mit den Projekteinstellungen (TARGET) und das Verknüpfen von dort aus funktioniert bei mir nicht. Hoffe das hilft.


0

Ich habe festgestellt, dass das file.framework auf eine Datei außerhalb meines Projekts verweist. Also habe ich die Datei in meinen Frameworks-Ordner unter meinem Projekt gezogen und dann die frühere Datei file.framework entfernt und es hat funktioniert.


0

Wenn Sie CocoaPods verwenden. Ähnliches ist mir passiert. Obwohl diese Frage alt ist, könnte jemand wie ich immer noch Probleme haben. Also um zu helfen: nachdem pod installes Sie vor Projektdateien warnt. Ich habe es bis jetzt nicht bemerkt. es sagt:

[!] Bitte schließen Sie alle aktuellen Xcode-Sitzungen und verwenden Sie sie ProjectFile.xcworkspaceab sofort für dieses Projekt.

Arbeiten Sie also nach der Installation von Pods nicht weiter an .xcodeproj. Wenn Sie dies tun, findet der Linker keine Dateien.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.