ld: Framework nicht gefunden Pods

233

Ich versuche, meinem IOS-Projekt ein Framework hinzuzufügen, aber beim Erstellen wurde immer die gleiche Meldung angezeigt:

ld: Framework nicht gefunden Pods

clang: error: Linker-Befehl mit Exit-Code 1 fehlgeschlagen (benutze -v, um den Aufruf zu sehen)

Ich habe versucht, mein PodsVerzeichnis zu entfernen und dann auszuführen. pod install Ich öffne das, .xcworkspacewie es in den Protokollen der Pod-Installation geschrieben steht. Ich bereinige das Projekt auf xcode und versuche dann zu erstellen, aber es funktioniert nicht.

Mein Podfile sieht folgendermaßen aus:

xcodeproj '/Users/guillaume/project/Mobile/iOS/FoodPin/FoodPin.xcodeproj'
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
pod 'SwiftHTTP', '~> 0.9.2'

Meine Version von xcode ist 6.3.1

Danke dir,

Kaëris
quelle
1
Haben Sie überprüft, ob libpods.asich dies in Ihren "verknüpften Frameworks und Bibliotheken" Ihres Ziels befindet? Und auch in Ihren Build-Phasen?
BoilingLime
Hast du es geschafft, das zu lösen? Ich habe den gleichen Fehler
Christopher Francisco
@ChristopherFrancisco Ich habe es gelöst, überprüfe meine Antwort.
Arbitur
1
Diese Antwort [1] hat mein Problem gelöst! Hoffe es hilft [1]: stackoverflow.com/a/31161871/1557663
Mário Carvalho
@ MárioCarvalho Das ist nur eine längere und anfängerfreundlichere Version meiner Antwort x)
Arbitur

Antworten:

524

In Project Navigatordem Ordner hatte Podsich einen, Pods.frameworkder rot war. Es war auch in vorhanden Linked Frameworks and Libraries. Ich habe beide Referenzen entfernt und der Fehler ist verschwunden.

TL; DR

Entfernen Pods.frameworkin:

  • Ordner benannt Pods
  • Linked Frameworks and Libraries
Arbitur
quelle
5
Ich glaube, ich bin mit diesem Problem gelandet, nachdem ich use_frameworks hinzugefügt habe! zu meinem Podfile und anschließend auskommentieren. Das Löschen des Verweises auf Pods.framework hat das Problem behoben.
StephenT
2
@StephenT Ja, ich glaube, das habe ich auch getan, zuerst benutzt use_frameworks!und dann ohne und vielleicht wurde das Pods.frameworkwährend nicht richtig gelöscht pod install. Könnte ein Fehler in Cocoapods sein.
Arbitur
Dies ist eine gute Antwort, hat keinen Einfluss auf die Beispiel-App, sie läuft immer noch gut
Gabriel Goncalves
3
Wenn dies nicht funktioniert, versuchen Sie es mit Cocoapods-Deintegrate. Das hat dieses Problem für mich gelöst.
Nickdnk
2
Nachdem ich die Pod-Installation ausgeführt habe, habe ich irgendwie eine Framework-Datei "Pods_ <Projektname>" in meinem Pods-Ordner gefunden. Durch Löschen dieser Datei, Bereinigen und Wiederherstellen wurde dieser Fehler für mich behoben.
Caleb Faruki
209

Dies wird normalerweise dadurch verursacht, dass die .xcodeproj-Datei anstelle von .xcworkspace geöffnet ist.

Wenn Sie 'pod install' zum ersten Mal ausführen, wird eine .xcworkspace-Datei erstellt, die Ihr ursprüngliches .xcodeproj und ein Pods-Projekt enthält. Sie müssen Ihr .xcodeproj schließen und stattdessen den .xcworkspace öffnen.

Dies ist ein häufiges Problem beim Erstellen eines Projekts mit dem neuen Projektassistenten von Xcode. Ich vergesse oft, dass ich mich nicht in einem Arbeitsbereich befinde, der erforderlich ist, damit Cocoapods korrekt verknüpft werden.

Chris Trevarthen
quelle
Vielen Dank ! Es verwirrt mich zum ersten Mal
Phi Nguyen
6
Ihre Erklärung ist viel besser als ich anderswo gesehen habe. Ich wusste nicht, was los war. Vielen Dank!
Michael Yaworski
In Kombination mit der Antwort von Arbitur wird das Problem behoben. Vielen Dank!
user1577390
Das war genau mein Problem. Vielen Dank!
Antonio Papalillo
In meinem Projekt befindet sich keine .xcworkspace-Datei. was zu tun ist
Kartiikeya
126

Xcode 9, 10, 11, 11.5

Installieren Sie https://github.com/CocoaPods/cocoapods-deintegrate

pod deintegrate

dann

pod install
Ted
quelle
1
Lief wie am Schnürchen! Danke dir. Dadurch wurde ein alter Verweis auf ein umbenanntes Ziel entfernt, das diesen Fehler verursachte.
Alex Obenauer
1
Sie sind mein Held! ;)
Swissdude
1
Wow du hast meinen Tag gerettet! war von gestern festgefahren und endlich mit Xcode 10 gelöst. Danke!
Purushottam Padhya
1
Dies sollte die richtige Antwort sein, es ist der sicherste Ansatz. Führen Sie keine manuellen Schritte aus, wenn Sie automatisierte Dinge wie CocoaPods verwenden, es sei denn, es handelt sich um einen bekannten Fehler, der sonst nicht behoben werden kann.
Gobe
1
Dieser hilft mir, toller Kerl!
Obst A.Suk
51

Ich habe diesen Fehler behoben, indem ich die roten .frameworkDateien gelöscht habe , die sich in einem Ordner Frameworksin der project navigator. Ich denke, dies löschte auch automatisch die entsprechenden roten Einträge im Linked Frameworks and LibrariesBereich der GeneralEinstellungen.

Ich habe Pods gereinigt / neu installiert, um ein anderes Problem zu beheben. Vielleicht sind diese roten Framework-Dateien und Einträge nur von einer früheren Pod-Installation übrig geblieben?

theblang
quelle
Ja! Mein Problem befand sich in verknüpften Frameworks und Bibliotheken der allgemeinen Einstellungen und war schwer zu finden, da es bei einer Textsuche nicht auftaucht!
Alistair Cooper
In meinem Fall waren die Framework-Dateien nicht einmal rot, sondern nur ausgegraut. Aber das Löschen scheint das Problem behoben zu haben!
Swindler
28

Für diejenigen, die dieses Problem finden. Ich verwende NativeScript und habe den gleichen Fehler erhalten.

Das passiert, weil ich die Datei .xcodeproj geöffnet habe, aber wir müssen das Projekt über die Datei .xcworkspace öffnen.

Calebeaires
quelle
27

Dies ist mir passiert, nachdem ich mein Podfile aktualisiert und ein Pod-Update durchgeführt habe.

Aus irgendeinem Grund wurde unter meinem Projekt unter "Ziele"> "Allgemein"> "Verknüpfte Frameworks und Bibliotheken" die Framework-Datei "Pods_ [ProjectName]" angezeigt.

Das Löschen und anschließende Bereinigen / Wiederherstellen hat das Problem behoben.

Elliott Davies
quelle
2
Dies geschieht, wenn Sie den Projektnamen wechseln und den alten löschen müssen. +1
Babbz77
Das hat bei mir funktioniert. Ich habe die Projektnamen nicht geändert, sondern Swift zu einem lang laufenden Objective-C-Projekt hinzugefügt.
Ruffy
24

Ich hatte ein ähnliches Problem wie

framework not found Pods_OneSignalNotificationServiceExtension

Es wurde gelöst, indem Folgendes entfernt wurde. Zum Ziel OneSignalNotificationServiceExtension> Build - Phase> Link Binary mit Bibliotheken und Löschen Pods_OneSignalNotificationServiceExtension.framework Es sollte hier leer sein. Hoffnung , das hilft. Prost.

Sharukh Mastan
quelle
Dies hat das Problem für mich behoben. Meine besondere Situation ist, dass ich ein iOS-Ziel MyApp hatte. Dann musste ich ein zweites Ziel erstellen und hatte MyAppFirst, MyAppSecond-Ziele. Cocoapods konnte das erstellen, was es brauchte (Pods_MyAppFirst, Pods_MyAppSecond), aber es wurde auch versucht, eine Verknüpfung zu Pods_MyApp herzustellen, die nicht mehr vorhanden war. Ich möchte darauf hinweisen, dass ich beim Versuch, das Problem zu beheben, meine Arbeitsbereichsdatei und meinen Pods-Ordner weggeworfen habe, damit sie bei einer „Pod-Installation“ von Grund auf neu erstellt wurden, aber das hat nicht geholfen.
Xdeleon
@ Sharukh Mastan Würdest du eine Idee haben, wie dies nach einer Pod-Installation geschehen kann? Jedes Mal, wenn ich einen Pod installiere, Pods_OneSignalNotificationServiceExtension.framework kommt der zurück, um mich in den verknüpften Frameworks und Bibliotheken des OneSignalNotificationServiceExtensionZiels zu verfolgen .
Sethmr
@ Sethmr Leider nein. In meinem Fall passiert es jedoch nicht immer nach a pod install, es ist zufällig.
Sharukh Mastan
@SharukhMastan Mein Problem war die Eröffnung *.xcodeproj/*.xcworkspaceüber die *.xcworkspacemit meinem VSTS .yml Automatisierungsskript. Ich weiß es besser mit einer GUI, gewöhne mich aber immer noch an die Anforderungen in der Skripterstellung.
Sethmr
15

Ich habe diesen Fehler erhalten, weil ich mein Projekt umbenannt und den Namen des Projekts auch in der Pod-Datei geändert habe, aber mein Projekt hat auf den alten Namen verwiesen, der nicht vorhanden war, und diesen Fehler verursacht. Ich werde das durch los

pod deintegrate

gefolgt von

pod install
osama
quelle
Ja! Ich hatte das gleiche Problem beim Downgrade der Version von 12.0 auf 9.0. Das Obige funktionierte, nachdem ich die Zielversion in meinem Podfile so geändert hatte, dass sie mit dem im Projekt enthaltenen übereinstimmt.
Richard Bown
Gute Antwort. Danke dir.
whdals0
14

Sie sollten Ihrem Projekt eine Datei wie dieses Bild löschen.

Sie sollten das pods.framework löschen und pods rote Dateien markieren

lingyfh
quelle
10

Entfernen Sie einfach Ihr .framework aus der Liste "Ihr Projekt-> Allgemein-> Verknüpftes Framework & Bibliotheken".

Md. Ibrahim
quelle
Das war es, ich hatte zwei, nachdem ich das Projekt umbenannt hatte. Vielen Dank!
Jimmy
10

Es ist mir passiert , weil ich das geändert Deployment Targetin , Generalaber vergessen , die sich ändern Deployment Targetin Pods > General. Ändern Sie das Bereitstellungsziel

Dary
quelle
Es wurde auch für mich behoben, Xcode 11.2 / Cocoapods 1.8.4. Irritierend, dass die Fehlermeldung keine Ähnlichkeit mit der Grundursache hat ...
Jonathan Ellis
1
Es wurde für mich behoben - ich hatte keine Ahnung, dass ich dies an beiden Stellen ändern muss. Danke vielmals!
Hakazvaka
6

In meinem Fall kann ich es auf Geräten und Simulator bauen, habe aber die gleichen Fehler bei der Archivierung. Um es zu lösen, muss ich

  • entfernen Pods.framework
  • Stellen Sie sicher, dass Pods-<project-name>.frameworkeingebettet ist

Die Einstellungen finden Sie unter ZIELE -> Verknüpfte Frameworks und Bibliotheken.

SeanChense
quelle
Könnten Sie dies überprüfen: github.com/CocoaPods/CocoaPods/issues/…
Esqarrouth
4

Schritt 1

Als erstes müssen Sie das Podfile, Podfile.lock, den Pods-Ordner und den generierten Arbeitsbereich entfernen.

Schritt 2

Entfernen Sie als Nächstes in .xcodeproj die Verweise auf die Dateien Pods.xcconfig und libPods.a.

Schritt 3

Löschen Sie auf der Registerkarte "Phasen erstellen" den Abschnitt "Pods Manifest.lock prüfen" (geöffnet), den Abschnitt "Pods-Ressourcen kopieren" (unten) und "Pod-Ressourcen einbetten" (unten).

Schritt 4

Entfernen Sie Pods.framework.

Das einzige, was Sie möglicherweise tun möchten, ist, einige der Bibliotheken einzuschließen, die Sie zuvor verwendet haben. Sie können dies tun, indem Sie einfach alle Ordner in den Pods-Ordnern in Ihr Projekt ziehen (ich ziehe es vor, sie in meinen Ordner "Unterstützende Dateien" zu legen).

Es hat bei mir funktioniert.

AG
quelle
Schritt 3 hat in meinem Fall funktioniert, Schritt 3 -> cmd + alt + shift + k.
ViruMax
4

Sie versuchen höchstwahrscheinlich, die Pods in Ihr Projekt einzubinden, oder? Die einzige Möglichkeit, dies zu tun, besteht darin, ein separates Projekt zu erstellen, das CocoaPods verwendet.

Schließen Sie alle Arbeitsbereiche, die Sie verwenden.

Stellen Sie als Nächstes sicher, dass Sie Ihr Podfile vollständig einsatzbereit haben.

Geben Sie in der Befehlszeile, wo immer sich Ihre Datei befindet, den folgenden Befehl ein:

pod deintegrate

Installieren Sie dann Ihren Pod Agian.

pod install or pod update

Jetzt können Sie den neuen Arbeitsbereich Ihres Projekts zum Entwickeln verwenden. Suchen Sie nach einer Datei namens .workspace. Verwenden Sie diese Datei!

Hier finden Sie eine Anleitung zur Verwendung von CocoaPods

Emmanuel Mbaba
quelle
Nur dieser arbeitete für mich nach 2 Tagen Kampf mit dem Fehler.
Mitesh Dobareeya
3

Mit Xcode 8.3 hat die akzeptierte Antwort bei mir nicht funktioniert. Ich hatte viele andere Lösungen ausprobiert, aber die Antwort von @Elliott Davies hat es für mich behoben. Ich füge der Übersichtlichkeit halber einen Screenshot hinzu. Aus irgendeinem Grund hat Xcode versucht, frühere Podfile-Setups zu verknüpfen, die nicht mehr vorhanden waren. Ich musste nur die zusätzlichen Referenzen löschen und alles funktionierte.Screenshot von Xcode Linked Frameworks und Bibliotheken

jbryant
quelle
3

Dieses Problem hat mich verrückt gemacht, da es plötzlich passiert ist, ohne dass Änderungen am Projekt vorgenommen wurden. Ich habe alle Lösungsvorschläge in diesem Thread (und anderen verwandten) ausprobiert und keiner von ihnen hat das Problem gelöst.

Das einzige, was sich von meinen anderen Projekten unterschied (die gut kompiliert wurden), war, dass dieser Projektname einen Akzent enthielt (einen französischen Akzent, "é"). Ich habe das Projekt und alle zugehörigen Dateien umbenannt und es hat endlich funktioniert!

Vielleicht hängt dies mit der Aktualisierung auf Xcode 10 zusammen, da dieses Projekt schon lange funktioniert hat ...

BEARBEITEN: Es scheint auch fehlgeschlagen zu sein, wenn ein Projekt mit -im Projektnamen verwendet wird.

AnthoPak
quelle
1
Du hast mein Leben gerettet
Florian Mac Langlade
1
Hat auch mein Leben gerettet!
Dan
Gibt es eine andere Lösung als das Projekt umzubenennen?
Anästhesie
@anestis Ich glaube nicht. Um das Projekt schnell umzubenennen, schlage ich Befehle aus dieser Antwort stackoverflow.com/a/48004237/4894980 vor , die einen sehr guten Job machen!
AnthoPak
3

In meinem Fall bemerkte ich nach dem Vergleich des Unterschieds zwischen einem Zweig, von dem ich wusste, dass er richtig gebaut wurde, diese Zeile in meinem Podfile:

platform :ios, '11.0'

Ich hatte versehentlich meine Zielversion von 10 auf 11 erhöht, während meine Ziele in Xcode auf 10 gesetzt blieben. Das Zurücksetzen auf 10 löste mein Problem für mich.

Stellen Sie sicher, dass Ihre iOS-Zielversionen richtig eingestellt sind.

Joels
quelle
Du hast meinen Tag gerettet!! Vielen Dank
Mayank Patel
3

So behebe ich mein Problem. und es funktioniert jetzt, wenn ich diese Antwort schreibe:

Erstens versuche ich den besten Weg oben,

Das Entfernen von Pods_xxx.framework aus den Linkbibliotheken und dem Framework in den Erstellungsphasen des Ziels ist hilfreich und das Problem wird verschwinden, aber das kommende Problem ist, dass ich das Pods.framework nicht mehr importieren kann.

Und dann versuche ich, die xcworkspace-Konfiguration neu zu starten, damit ich das eigentliche Problem herausfinden kann. Also renne ich

pod deintergate

und installiere dann meinen Pod erneut:

pod install

Diese Arbeit funktioniert perfekt, aber das Problem ist immer noch da, aber ich finde heraus, dass das eigentliche Problem darin besteht, dass die Pods_xxx.framworks nicht erfolgreich von Cocoapods Build-Skript kompiliert werden. Ich denke, dies ist der wahre Weg, um das Problem zu beheben.

Schließlich versuche ich, das Schema meines Projekts zu bearbeiten:

Das Pods-Schema wird nicht bearbeitet

und ich füge Pods Schema hinzu, um zu verwalten:

Geben Sie hier die Bildbeschreibung ein

Wenn Sie dieses Pods.framework separat erstellen, wird das Pods.framework-Symbol wieder richtig:

Geben Sie hier die Bildbeschreibung ein

und ich denke, jetzt haben Sie Ihr Problem "Framework nicht gefunden Pods_xxxx.framework" behoben, aber tatsächlich kommt ein weiteres Problem:

Geben Sie hier die Bildbeschreibung ein

Also gehe ich zur Build-Einstellung und bearbeite die "Framework Search Path"mit "${inherited}", und jetzt gehen alle Probleme aus, jubeln !!!! :)

Geben Sie hier die Bildbeschreibung ein

Levine Veblen
quelle
Das Hinzufügen und Erstellen eines Pod-Ziels zeigte tatsächlich, was mit dem Pod-Build nicht stimmte. In unserem Fall war dies ein schneller Versionskonflikt. Vielen Dank!
green0range
Ich habe nicht alle Schritte befolgt. Ich habe gerade diesen ${inherited}Pfad hinzugefügt und dann Product->Clean Build Folder, und das war's, jetzt baut er sich ohne Probleme auf.
Starwave
2

Ich habe dieses Problem festgestellt, weil ich das nicht eingestellt habe platform richtig eingestellt habe.

Also hatte ich in meiner macOS App die Plattform eingestellt auf:

platform :ios

anstatt

platform :osx
Besi
quelle
1

Ich habe dieses Problem behoben, indem ich das Projekt ausgewählt habe, von dem es heruntergeladen CocoaPodsund erstellt wurde. Sie können auf Schemas verwalten klicken, damit es in der Ausführungsleiste angezeigt wird. Dann können Sie Ihr Projekt neu erstellen. Hoffe es hilft.

vinhsteven
quelle
1

Nach dem Entfernen und Aktualisieren des Pods hatte ich immer noch das gleiche Problem.

Ich habe festgestellt, dass der vorherige Entwickler das Flag unter " Build Settings -> Other Linker Flags" gesetzt hat " ein mit dem Framework-Namen (in meinem Fall-Framework "OGVKit") gesetzt hat, das das Problem verursacht hat.

Nach dem Löschen dieses Flags wird das Projekt ordnungsgemäß erstellt.

Babac
quelle
Ich danke dir sehr! Sie müssen immer ein Auge auf Dinge haben, die in den Build-Einstellungen fett sind !
Marcio Granzotto
1

In meinem Fall gab es einen Verweis auf die Bibliothek, die ich entfernt habe

Ziele> Build-Einstellungen> Runpath-Suchpfade

Das Entfernen der Bibliothek aus Podfile und das Aktualisieren haben sie offensichtlich nicht entfernt, daher musste ich sie manuell ausführen und jetzt funktioniert alles.

Marina Aguilar
quelle
1

Keine der vorherigen Antworten wies auf das Grundproblem in meiner Situation hin. Ich hoffe also, dass dies für jemand anderen nützlich sein kann.

In meinem Fall musste ich meine Poddatei im Stammverzeichnis meines Projekts bearbeiten . Als ich meine Poddatei zum ersten Mal erstellte, wurden schnelle statische Bibliotheken nicht unterstützt. Also hatte ich benutztuse_frameworks! in meinem Podfile unter jedem meiner Ziele als solches verwendet:

VOR

...
target 'targetName' do
   use_frameworks!
   pod 'podName', '~> 0.2'
end

NACH DEM

...
target 'targetName' do
   pod 'podName', '~> 0.2'
end

Ich habe use_frameworks!aus meiner Poddatei entfernt, die die Frameworks jedes Mal installiert hat, wenn ich die Pod-Installation ausgeführt habe. Stellen Sie nach dem Entfernen dieser Zeile sicher, dass sie ausgeführt wirdpod installStellen Sie erneut ausgeführt wird, und entfernen Sie alle roten .framework-Referenzen aus Ihrem Frameworks-Ordner in Xcode. (Obwohl meine anders aussah, wie unten angefügt.)

Bild zum Entfernen von .framework-Dateien, die nicht mehr benötigt werden

Sie können auch mehr über lesen use_framework! hier .

the.giologist
quelle
0

Wenn Sie die .xcworkspace-Datei geöffnet haben und immer noch den gleichen Fehler erhalten:

delete all the contents of Pods directory and from command line write "pod install" to resolve the issue.
Alp Altunel
quelle
0

Löschen Sie den Framework-Ordner, der nach der Pod-Installation oder -Update erstellt wurde

Xcoder
quelle
0

Eine andere Sache, die mein Problem gelöst hat, ist, unter Ziel -> Build-Einstellungen -> Andere Linker-Flags das "-framework" und den "Namen" Ihres Frameworks zu löschen.

Es passierte, als ich versuchte, einen Pod zu entfernen.

atacand1920
quelle
0

Ich habe dieses Problem gelöst, indem ich die .frameworkDatei auf das verknüpfte Framework und die Bibliotheken gezogen habe

Angenommen, ich hatte dieses Problem aufgrund eines Fehlers FIRAnalyticsConnector not foundund ziehe die FIRAnalyticsConnector.framworkDatei einfach auf Linked Framework und Bibliotheken, und mein Problem ist gelöst

Sultan Ali
quelle
0

Ich habe hier jede Antwort ausprobiert und keine davon hat funktioniert. Am Ende habe ich das Bereitstellungsziel von 10.0 auf 11.0 erhöht. Ich habe keine Ahnung, warum das behoben wurde, aber ich vermute, dass es mit einem Upgrade auf Xcode 10.2.1 zu tun hat.

Schwindler
quelle
0

Vielleicht öffnen Sie plötzlich die falsche Datei von .xcodprj und sollten .xcworkspace öffnen

amirtutunchi
quelle
Es ist besser, dies als Kommentar zu posten.
MR
0

Bitte überprüfen Sie Ihre ausführbare Datei in .Framework wie Geben Sie hier die Bildbeschreibung ein

  1. Der Name der ausführbaren Datei sollte ohne Erweiterung so aussehen.

  2. Einige Frameworks zeigen sich so Geben Sie hier die Bildbeschreibung ein

  3. Verwenden Sie das Terminal zum Verzeichnis .framework. Verwenden Sie den folgenden Befehl: lipo -create FrameworkName-x86_64 FrameworkName-armv7 FrameworkName-armv7s FrameworkName-i386 FrameworkName-arm64 -output FrameworkName

Nach dem Erstellen einer einzelnen ausführbaren Datei löschen Sie diese Dateien Geben Sie hier die Bildbeschreibung ein

Purnachandar Rao Voleti
quelle