Xcode - ld: Bibliothek für -lPods nicht gefunden

184

Ich erhalte diese Fehler, wenn ich versuche, eine iOS-Anwendung zu erstellen.

ld: library not found for -lPods
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Ld /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator/Totalbox.app/Totalbox normal x86_64
cd /Users/Markus/Development/xcode/totalbox-ios
export IPHONEOS_DEPLOYMENT_TARGET=7.1
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk -L/Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator -F/Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator -filelist /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Intermediates/Totalbox.build/Debug-iphonesimulator/Totalbox.build/Objects-normal/x86_64/Totalbox.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -ObjC -framework CoreGraphics -framework Foundation -framework MobileCoreServices -framework QuartzCore -framework Security -framework SystemConfiguration -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=7.1 -framework CoreGraphics -framework UIKit -framework Foundation -lPods -Xlinker -dependency_info -Xlinker /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Intermediates/Totalbox.build/Debug-iphonesimulator/Totalbox.build/Objects-normal/x86_64/Totalbox_dependency_info.dat -o /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator/Totalbox.app/Totalbox

PODS ROOT in den Build-Einstellungen:

${SRCROOT}/Pods

Ich habe dieses Xcode-Projekt nicht erstellt - habe es einfach aus Git gezogen, um es zu überprüfen.

mrks
quelle

Antworten:

598

Wenn das Projekt CocoaPods verwendet, müssen Sie immer die .xcworkspaceDatei anstelle der .xcodeprojDatei öffnen .

H6.
quelle
2
Ich fand es auch hilfreich, das Pod-Ziel zu erstellen, nicht das normale Xcode-Ziel.
Don Simon
1
Nachdem ich es geöffnet habe, kann ich mein Projekt überhaupt nicht mehr ausführen. was soll ich machen?
Inuyasha
Mir ist aufgefallen, dass ein Verweis auf Podsim, .xcodeprojaber nicht im .xcworkspace, weshalb diese Lösung funktioniert.
Jacksonkr
1
CD in den Projektordner und führen Sie "pod update" aus. Wenn Sie keinen Pod haben, suchen Sie nach einer Installation.
Justinkoh
2
Ich habe diese Fehlermeldung beim Öffnen von .xcworkspace erhalten (genauer gesagt, dies funktionierte einmal auf einem Mac und nicht auf dem anderen). In meinem Fall wurde das Problem beim Umbenennen eines Projekts und beim späteren Kopieren auf einen anderen Computer festgestellt. Die Bibliotheken wurden nicht an den neuen Speicherort kopiert. Vergleiche: /Users/[USERNAME]/Library/Developer/Xcode/DerivedData/[OLDPROJECTNAME]-[LONGRNDCHARS]/Build/Productsmit:/Users/[USERNAME]/Library/Developer/Xcode/DerivedData/[NEWPROJECTNAME]-[LONGRNDCHARS]/Build/Products
Yatko
97

Hatte auch dieses Problem. Bei meiner CocoaPods-Installation stimmte etwas nicht. Keine anderen Pods als KIF wurden ordnungsgemäß installiert. Ich habe die Kommentare zu diesem Thread befolgt , um zu helfen.

Grundsätzlich musste ich sicherstellen, dass die Build Active Architectures OnlyEinstellungen für mein Projekt und das Pods-Projekt gleich waren.

Stunner
quelle
7
Ich musste sicherstellen, dass es auch zwischen den Zielen meines Projekts und den Zielen des Pods gleich war ...
Nimrod Shai
Dies passiert mir alle 6 Monate und ich kann mich nie erinnern, wie ich es das letzte Mal gelöst habe ... Nur aktive Architektur erstellen. . . Mögen wir uns alle erinnern
Kanongata
51

Nach stundenlanger Recherche hat diese Lösung für mich funktioniert:

(Haftungsausschluss: Ergebnisse können aufgrund der Umstände variieren)

Der Library not found -lPods-(someCocoapod)Fehler war auf mehrere Einträge in folgenden Bereichen zurückzuführen:

Settings(Target) > Build Settings > Linking > 'Other Linker Flags'

Viele andere Beiträge ließen mich dort nachsehen und ich würde Änderungen am Fehler sehen, wenn ich mit den Einträgen herumspielte, aber ich bekam immer wieder Variationen des gleichen Fehlers.

Zu viele Stunden verloren ...

Mein Fix:

Entfernen Sie die Zeilen -lPods- (someCocoaPod) in der Liste 'Other Linker Flags', ABER nur, wenn $ (geerbt) oben steht. Anfangs war ich mir nicht sicher, aber das beruhigende Zeichen war, dass ich immer noch Verweise auf meine Cocoapods sah, als ich den Bearbeitungsmodus verließ (geerbt). Ich habe in Debug und Release getestet, die mir beide Fehler gaben, und das Problem wurde sofort behoben.

Damote
quelle
hat wie ein Zauber funktioniert, danke. Ich hatte dieses Problem nur beim Update auf Swift 2.0 auf El Capitan. Hat vorher perfekt funktioniert.
Ovi
Ich habe nur $ (geerbt) und gleichzeitig habe ich diese frustrierenden Dupes. Wo kann ich den ursprünglichen Wert für die Variable $ (geerbt) bearbeiten?
Nickolay
Du hast meinen Tag gerettet, Mann ... steckte eine Weile in dieser Ausgabe fest ... es ist passiert, weil ich das gesamte Pod-Projekt entfernt und erneut hinzugefügt habe
Mihir Mehta
Auch für mich behoben. Ich hätte das nie alleine herausgefunden!
bmueller
Du hast ... geschlagen! Funktioniert wie ein Zauber
Rob Sanders
31

Es scheint, dass das Projekt Cocoapods verwendet hat . und dass Dateien in Ihrem Projekt fehlen.

Sie können es nicht einfach von git herunterladen. Sie müssen es von Cocoapods installieren.

Weitere Hilfe finden Sie im Tutorial Einführung in CocoaPods

Wenn das Projekt verwendet CocoaPods, beachten Sie, dass die .xcworkspaceDatei immer anstelle der .xcodeprojDatei geöffnet wird

Rahul Patel
quelle
1
@ RahulPatel Wie man die bestimmte Datei installiert, können Sie bitte den Befehl teilen
Ashok Londhe
Wenn Sie die neue Beta-Version verwenden möchten, können Sie verwenden:pod 'GoogleAds-IMA-iOS-SDK-For-AdMob', '3.0.beta.16'
Berendschot
27

Wenn Sie mehrere Ziele in Ihrem Projekt haben, haben sich Cocoapods möglicherweise nur in nur eines davon gut integriert.

Ich musste libPods.afür jedes zusätzliche Ziel, das ich hatte , manuell auf "Binär mit Bibliotheken verknüpfen " verlinken .

libPods.a in meiner Liste der Frameworks

Rizwan Sattar
quelle
Ich denke, die Pod-Installation ist nicht in die libPods.a-Datei für alle Ziele integriert. Als Rizwan-Anleitung habe ich hinzugefügt und es funktioniert ... Danke Rizwan Sattar
Wagh
Dies funktionierte für mich, obwohl es nicht in rot angezeigt wurde. Ich habe danach die Pod-Installation ausgeführt und sie nicht hinzugefügt, aber alles scheint zu funktionieren.
Jules
2
Eigentlich musste ich eine veraltete (mein-Projektname) .a-Bibliothek entfernen, weil ich das Projekt zuvor umbenannt hatte und es einfach dort feststeckte. Ich habe Ihre Antwort aufgewertet, weil sie mir eine Vorstellung davon gab, wo das Problem liegen könnte.
Kalafun
Du bist ein Lebensretter!
Yuliwee
24

Mein Problem wurde durch die folgende Konfiguration behoben:

Build Active Architecture Only: YES
Durul Dalkanat
quelle
Dies funktionierte für mich, als ich auf ein Problem mit SDWebImage stieß ... für diejenigen, die hier ihren Weg für diese Cocoapod-Komponente gefunden haben
Scott D
Dies löst dieses Problem für mich, verursacht aber ein anderes. Ich muss für alle Architekturen bauen, nicht nur für die aktive.
HotFudgeSunday
In einem alten Code integriere ich Pods. Ich stehe vor dem gleichen Problem. Die obige Antwort hat geholfen.
Shashank Kulshrestha
15

Wenn jemand hierher gekommen ist, um einen Fehler react-native-fbsdknach der Installation mit zu beheben Cocoapods, denken Sie daran, dass Sie alle anderen .a-Dateien in Ihren Projects- Erstellungsphasen entfernen und nur die .a von aufgerufenen Cocoapods behalten müssen libPods-WhateverAppName.a.

Nur das bleibt hier

Dies wird normalerweise durch das Laufen rnpm linkund die Funktionsweise von rnpm verursacht.

Nachdem ich die .a-Datei des Facebook-Kerns aus meinen Erstellungsphasen entfernt hatte, war mein Projekt wieder betriebsbereit.

SudoPlz
quelle
11

Dieses Problem im Zusammenhang mit lPods kann durch Ausführen der folgenden Schritte behoben werden

  • Wählen Sie Ihr Projektziel.
  • Zum "Build Phases"in "Link Binary With Libraries".
  • Entfernen Sie nun die ".a"Datei der Bibliothek, die das Problem verursacht.
  • Reinigen und bauen.

Das wird funktionieren.

Abuzar Amin
quelle
In meinem Fall hat das Entfernen libstdc++.6.dylibdas Problem gelöst!
Igor de Lorenzi
Wie und wo haben Sie die "libstdc ++. 6.dylib" entfernt, da ich die "-lstdc ++. 6" entfernen muss. Ich erhalte die "Bibliothek nicht gefunden für -lstdc ++. 6"
Hari Narayanan
10

Keine der obigen Antworten hat es für mich behoben.

Was ich stattdessen getan hatte, wurde pod installmit einem podBefehl außerhalb des targetAbschnitts ausgeführt. Also zum Beispiel:

#WRONG
pod 'SOMEPOD'

target "My Target" do
    pod 'OTHERPODS'
end

Ich reparierte es schnell und brachte die fehlerhafte Kapsel zurück in den targetBereich, in den sie gehörte, und lief pod installerneut:

# CORRECT
target "My Target" do
    pod 'SOMEPOD'
    pod 'OTHERPODS'
end

In der Zwischenzeit wurde die -libPods.aBibliothek zu meinen verknüpften Bibliotheken hinzugefügt, die nicht mehr existieren und nicht mehr vorhanden sein sollten, da bereits die -libPods-My Target.adarin enthalten sind.

Die Lösung bestand also darin, in die allgemeinen Einstellungen meines Ziels zu gehen, zu verknüpften Frameworks und Bibliotheken zu wechseln und sie einfach -libPods.aaus der Liste zu löschen .

Soße
quelle
Ich habe Cocoapods für mein Projekt ordnungsgemäß installiert, hatte aber den gleichen Fehler wie das OP. Das Löschen von -libPods.a hat es für mich gelöst. Vielen Dank, Sir.
NKorotkov
Ich habe ein altes Projekt aktualisiert und die alte Pod- pod initDatei verschrottet und bin gelaufen , um eine neue einzurichten. Dabei habe ich festgestellt, dass die alte Datei Ihren Vorstellungen entspricht # WRONGund die neue Datei Ihren Vorstellungen entspricht # CORRECT. Danke dir!
BJ Miller
8

Meine Schritte:

  1. Löschen Sie den Pods-Ordner und die 'Pods'-Datei.
  2. Geben Sie "pod install" in Terminal ein.
  3. Geben Sie "pod update" in Terminal ein.

Zusätzlich dazu, dass "Build Active Architectures" wie in den vorherigen Antworten erwähnt auf YES gesetzt wurde, hatte dies für mich getan.

David Liu
quelle
+1 In meinem Fall, wenn es sich um einen -lHelpshiftbestimmten Namen des Pods handelt. Dann entferne ich nur einen bestimmten Ordner, so wie es ist Pods/Helpshift. Dann mach es pod installnochmal. Keine Notwendigkeit zu aktualisieren. Es funktioniert jetzt.
Haxpor
1
Das Löschen aller Pods und das anschließende Neuinstallieren haben geholfen.
Sanad Liaquat
7

Hatte das gleiche Problem nach dem Upgrade Deployment targetvon 7.0auf 8.0und dem Aktivierenuse_frameworks!

cocoapodshat zuvor generierte PodName.aDateien nicht aus dem FrameworksAbschnitt meines Projekts gelöscht .

Also musste ich diese manuell löschen, weil sie das verursachten linker error

Tim
quelle
4

Löschen Sie alle entsprechenden Dateien / Ordner der importierten Cocoapods-Quelle mit Ausnahme der Poddatei.

install cocoapod Dies sollte alle redundanten Zugriffe von der Originalquelle beseitigen.

thatzprem
quelle
3

Wenn Sie ein Projekt von einem Ort klonen, an dem Cocoapods verwendet werden, müssen Sie diese in Ihrem Projekt installieren.

Hier Schritt für Schritt, was Sie tun müssen:

  • 1) Quellcode auf lokalen Computer klonen;
  • 2) Schließen Sie das Xcode-Projekt (falls geöffnet).
  • 3) Installieren Sie die Cocoapods-Anwendung auf Ihrem Mac, indem Sie diesen Befehl im Terminal ausführen : " gem install cocoapods ", fügen Sie " sudo " hinzu am Anfang " hinzu, wenn dies nicht funktioniert hat.
  • 4) Gehen Sie mit dem Befehl " cd " im Terminal zum Stammverzeichnis Ihres xcode-Projekts .
  • 5) Sie sollten Podfile in diesem Ordner haben; Wenn Sie es mit dem Befehl " cat Podfile " überprüfen möchten , wird der Inhalt dieser Datei mit Bibliotheken angezeigt, die in Ihrem Projekt installiert werden müssen.
  • 6) Verwenden Sie dann den Befehl " pod install ", um die Bibliotheken herunterzuladen und in Ihr Projekt zu installieren. Die Datei Podfile.lock wird erstellt und die Datei {Ihr Projektname} .xcworkspace .
  • 7) Von nun an müssen Sie {Ihren Projektnamen} .xcworkspace verwenden , um es in xcode zu öffnen.

Viel Glück!

Renat Gatin
quelle
3

Dies war mein Problem beim Versuch, Firebase mithilfe von Cocoapods in mein Xcode-Projekt zu integrieren

library not found for -lGoogleToolboxForMac
linker command failed with exit code 1 (use -v to see invocation)

Nach stundenlangem Suchen und Ausprobieren verschiedener im Stackoverflow aufgelisteter Fixes wurde mein Problem schließlich mit den folgenden Schritten behoben

  1. Gehen Sie zu Build Settings, suchen Sie nach Other Linker Flags, entfernen Sie alle erwarteten Werte$(inherited) Bild

Tun Sie dies für alle Ziele.

  1. Löschen Sie den Pods-Ordner. (ios/Pods )
  2. Machen pod update

Voila! Alle Linkerfehler sind verschwunden.

Hariks
quelle
Das musste auch für mich passieren. Allerdings war es auch in meinem Fall eine reaktionsnative App, die Firebase Analytics hinzugefügt hat. Ab Juli 2018 müssen alle Apps mit iOS 11 pro Apple erstellt werden: developer.apple.com/ios/submit/ Nachdem ich zu meiner Registerkarte "Allgemein" gegangen bin und nach unten zu Bereitstellungsinformationen / Bereitstellungsziel gescrollt und diese von 10.x geändert habe ist das, worauf ich abzielte, auf 11.x - die App wurde erstellt / archiviert und ich konnte einreichen.
Bo_
2

Für mich hatte das Folgen funktioniert.

  1. Gehen Sie zu "Projektziel -> Build-Einstellungen -> Vorverarbeitung -> Präprozessor-Makros". Setzen Sie "COCOAPODS = 1" in allen Debug-, Integrations- und Release-Versionen unter "Präprozessor-Makros".
  2. Fügen Sie unter "Andere Linker-Flags" unter "Projektziel" Folgendes hinzu
    1. $ geerbt
    2. -ObjC
    3. -lc ++
    4. -all_load

Bereinigen Sie das Projekt und führen Sie es aus. Wenn immer noch der gleiche Fehler auftritt, setzen Sie "Projektziel -> Build-Einstellungen -> Nur aktive Architekturen erstellen", setzen Sie "Debug" auf "YES" und setzen Sie "Integration and Release" auf "No". Wiederholen Sie dann die gleiche Einstellung von "Nur aktive Architekturen erstellen" für alle "Pods-Ziele".

Bereinigen Sie das Projekt und führen Sie es aus. Wenn Sie den folgenden Fehler erhalten

 No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).

Dann versuchen Sie es mit Mr. Mike Antwort in diesem Link

Xcode 5.1 - Keine zu kompilierenden Architekturen (ONLY_ACTIVE_ARCH = YES, active arch = x86_64, VALID_ARCHS = i386)

Ich hoffe es hilft!

Sakthimuthiah
quelle
2

In einem Projekt mit mehreren Zielen hatte ich das gleiche Problem, nachdem ich den Schema- und App-Namen geändert und versucht hatte, Pods zu aktualisieren. Das Problem wurde durch mehrere Einträge in Build-Phasen -> Binär mit Bibliotheken verknüpfen verursacht, in denen sowohl die vorherige .a-Bibliothek als auch die aktuelle aufgeführt waren, während die vorherige nicht mehr vorhanden war. Durch Entfernen der Bibliothek von dort wurde das Problem behoben.

Shardon
quelle
1

Meine Art

  1. Erstellen Sie ein neues Projekt und installieren Sie den Pod, der fehlerfrei ausgeführt werden kann.

  2. Kopieren Sie den Text in "Andere Linker-Flags" im neuen Projekt in das alte Projekt. Machen Sie aus einem alten Projekt dasselbe neue Projekt.

  3. Überprüfen Sie auch "Header-Suchpfade".

Supapon Pick Pucknavin
quelle
1

Bei mir funktioniert das. Ich habe meinen App-Namen von someApp in otherApp geändert. Und ich verwende Kakaofrüchte für die Integration mehrerer Dienste von Drittanbietern. Aus diesem Grund wurden 2 libPod-Dateien hinzugefügt (da ich den Namen und das Ziel der App geändert habe). Schließlich musste ich einen libPod entfernen. Und es hat funktioniert.

Ziel-> Erstellungsphasen-> Binär mit Bibliotheken verknüpfen

Narasimha Nallamsetty
quelle
1

Ich habe den gleichen Fehler bekommen.

Das Problem : Ich habe einen separaten Arbeitsbereich erstellt und mein vorhandenes Projekt hinzugefügt. Ich habe den Fehler erhalten, als ich an diesem Arbeitsbereich gearbeitet habe.

Das Update : Später stellte ich fest, dass Workspace automatisch im vorhandenen Projekt erstellt wird, wenn Abhängigkeiten hinzugefügt werden. Und müssen an diesem Arbeitsbereich arbeiten.

Vasanth
quelle
Diese Antwort gibt nicht klar an, wie die gestellte Frage zu beheben ist
Mark
1

Die folgende Lösung funktionierte für mich für die Core-Plot 2.3-Version. Nehmen Sie die folgenden Änderungen im Abschnitt "Andere Linker-Flags" vor.

1. Fügen Sie $ (geerbt) hinzu und ziehen Sie dieses Element an die oberste Position. 2. Entfernen Sie das Präfix "Pods-" von -l "Pods-fmemopen", l "Pods-NSAttributedStringMarkdownParser" und -l "Pods-MagicalRecord".

Wenn das Problem weiterhin besteht, prüfen Sie abschließend, ob PODS_ROOT festgelegt ist oder nicht. Sie können dies im benutzerdefinierten Abschnitt überprüfen.

Saikiran K.
quelle
1

Ich hatte das gleiche Problem

Pod-Installation und Pod-Update in der Befehlszeile lösen mein Problem

tamtoum1987
quelle
1

Wenn das Projekt CocoaPods verwendet, müssen Sie immer die .xcworkspace-Datei anstelle der .xcodeproj-Datei öffnen. Wenn Sie .xcworkspace verwenden, installieren Sie die Pod-Datei erneut, indem Sie die Pods entfernen. Setzen Sie die Pods erneut ein und installieren Sie sie !!! das hat bei mir funktioniert

Chintu das coole Kind
quelle