'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.

Kim Montano
quelle
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.

Abhinav
quelle
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.

Lou Morda
quelle
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

frank
quelle
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

KoreanXcodeWorker
quelle
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.

alicanozkara
quelle
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"
Alexander Abakumov
quelle
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
AyAz
quelle
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.

Andre Simon
quelle
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!

Dave
quelle
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.
August Lin
quelle
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

Ashutosh Kumar Mishra
quelle
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
yoAlex5
quelle
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!

Laura Corssac
quelle
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.

George_E
quelle
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.

Antons Aleksandrovs
quelle
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.

YingTai.Z
quelle
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.

Programmierer
quelle
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.

Ahmad Labeeb
quelle
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.

GO.exe
quelle
-1

Bitte öffnen Sie nach dem Hinzufügen beider Frameworks auch jedes Bolts and Parse-Framework und fügen Sie Parse and Bolts zum Projekt hinzu. Dann wird das Problem gelöst

rawa rawandze
quelle
Bitte überprüfen Sie, wie Sie eine gute Antwort schreiben . Bitte fügen Sie einige Referenzen hinzu und erweitern Sie Ihre Erklärung.
Quintin Balsdon