it-swarm.com.de

bibliothek wurde für -lPods nicht gefunden

Beim Archivieren eines Projekts ist ein Fehler aufgetreten. Das ist meine Umgebung.

  • Mac OS Lion
  • Xcode 4.3.1
  • iOS SDK 5.1

Das Projektimplementierungsziel lautet:

IPHONEOS_DEPLOYMENT_TARGET 3.2

Der Fehler zeigt:

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

Ich nehme an, Pods sind CocoaPods, mit denen ich die Abhängigkeiten von XCode-Projekten verwaltet habe . https://github.com/CocoaPods/CocoaPods

Das ist meine Poddatei 

platform :ios  
dependency 'libPusher', '1.1'

Ich bin nicht sicher, was der Fehler bedeutet.

309
angelokh

Öffnen Sie den Arbeitsbereich (der von CocoaPods generiert wurde) anstelle des xcodeproj?

586
alloy

Ich habe die App und die Testziele in der Poddatei mit getrennt

target :App do
    …
end

target :AppTests do
    …
end

Dies führte zu zwei neuen Produkten libPods-App.a und libPods-AppTests.a, und sie machten das vorherige Produkt libPods.a obsolet. Ich musste dieses Produkt aus der Link Binary With Libraries-Sektion der Build-Phasen Konfiguration beider Ziele entfernen. 

170
Andras Hatvani

Ich bin heute auf ein ähnliches Problem gestoßen.

  1. Ich habe ein neues Projekt angelegt
  2. Ich habe Kakaoschoten installiert
  3. Ich habe eine neue Konfiguration Preview zusammen mit der vorhandenen Debug und Release erstellt.
  4. Beim Kompilieren dieser neuen Preview-Konfiguration kann der Compiler keine Verknüpfung mit Pods herstellen und gibt die folgende Meldung aus:

    ld: library not found for -lPods
    

Die Lösung:

Was ich tun musste, war zu rennen

 pod install

wieder und damit die Konfiguration von cocoapods für die neue Preview-Konfiguration. Es hat mein Projekt, den Arbeitsbereich und die Projektdatei des Pod aktualisiert und das Problem ist verschwunden

116
Besi

Stellen Sie sicher, dass Sie .xcworkspace öffnen, nicht .xcodeproj.

63
Michal Gumny

Keine Lösung hat für mich funktioniert, das ist wirklich unerträglich, es gibt eine Datei libpods.a (die rot gefärbt war). Ich habe sie entfernt und alles funktioniert einwandfrei! Prost zu mir;)

51
Hemang

Ich hatte meine Pod-Auflistungen in der Podfile für verschiedene Ziele aufgeteilt, wie:

target :ABC do
  pod 'KissXML', '~> 5.0'
  pod 'libPhoneNumber-iOS', '~> 0.7.2'
end

target :ABCTests do
  pod 'OCMock', '~> 2.2.1', :inhibit_warnings => true
end

Und lief einen pod install

Dadurch wurde eine neue Bibliothek libPods-ABC.a erstellt, zu der meine Binärdatei verlinkt werden musste. Der Fehler bestand jedoch darin, dass die vorherige Bibliothek nicht gelöscht wurde, d. H. libPods.a.

Lösung: Entfernen Sie die Bibliothek libPods.a aus Build Phases von Link Binary With Libraries.

45
Ayush Goel

wenn Sie auf cocoapods v25/Xcode 5 Probleme damit haben 

Das Pods Xcode-Projekt setzt jetzt die Build-Einstellung ONLY_ACTIVE_Arch in der Debug-Konfiguration auf YES. Sie müssen dasselbe für Ihr Projekt/Ziel festlegen, andernfalls schlägt der Build fehl.

https://github.com/CocoaPods/CocoaPods/wiki/FAQ#running-into-build-failures-nach-migrating-to-xcode-5-und-ococoapods-0250

UPDATE Vergewissere dich, dass du die neuesten Edelsteine ​​/ Kokosapoden hast

  • juwel-Update-System 
  • edelsteinaktualisierung Kokosapoden

Sie müssen das Projekt mit Pod Install neu erstellen, um das Projekt neu zu erstellen.

44
johndpope

Ich hatte eine alte libPod.a-Datei angegeben (wahrscheinlich verursacht durch das Ändern von Zielen).

Projekteinstellungen -> Phasen erstellen -> Binäres mit Bibliotheken verknüpfen

Normalerweise enthalten Cocoapods nur eine Bibliothek, z. B. libPods-target.a oder libPods.a. Ich löste es, indem ich das Duplikat entfernte.

43
Sebastian Hojas

Wenn sich Xcode beim Linken beschwert, z. Bibliothek wurde für -lPods nicht gefunden, die impliziten Abhängigkeiten werden nicht erkannt.

Gehen Sie zu Product> Edit SchemeKlicken Sie auf Build Fügen Sie die statische Pod-Bibliothek hinzu, und vergewissern Sie sich, dass sie oben in der Liste steht Reinigen Sie und bauen Sie erneut .____ Wenn dies nicht funktioniert, überprüfen Sie dies Die Quelle für die Spezifikation, die Sie einbinden möchten, wurde von Github abgerufen. Schauen Sie dazu in/Pods /. Wenn es leer ist (sollte es nicht sein), vergewissern Sie sich, dass ~/.cocoapods/master //. Podspec die richtige Git-Hub-URL enthält . Wenn dies nicht funktioniert, überprüfen Sie die Einstellungen für den XCode-Build-Speicherort. Gehen Sie zu Voreinstellungen -> Standorte -> Abgeleitete Daten -> Erweitert, und legen Sie den Erstellungsort auf "Relativ zum Arbeitsbereich" fest.

http://docs.cocoapods.org/guides/getting_started.html

37
HoratioCain

Ich hatte das gleiche Problem, als ich die Pod-Datei editierte und das Ziel hinzufügte, das ich zuvor ohne Ziel verwendet hatte.

Poddatei

target 'xxxx' do

pod 'xyz'
pod 'abc'    

end

Nachdem ich mich gefragt hatte, fand ich unter Zieleigenschaften >> Registerkarte Allgemein >> Abschnitt Verknüpfte Frameworks und Bibliotheken die neuen libPods-xxxx.a und die alte libPods.a

Ich habe gerade libPods.a entfernt und alles hat gut funktioniert. 

36
Khaled Annajar

CocoaPods 'Wiki auf GitHub hat die richtige Antwort in ihren FAQ :

  • Gehe zu Product > Edit Scheme
  • Klicken Sie auf Build
  • Fügen Sie die statische Pod-Bibliothek hinzu und stellen Sie sicher, dass sie oben in der Liste steht
  • Reinige und baue wieder
  • Wenn dies nicht funktioniert, vergewissern Sie sich, dass die Quelle für die Spezifikation, die Sie einschließen möchten, aus Github stammt. Schauen Sie dazu in <Project Dir>/Pods/<Name of spec you are trying to include>. Wenn es leer ist (sollte es nicht sein), vergewissern Sie sich, dass der ~/.cocoapods/master/<spec>/<spec>.podspec die richtige Github-URL enthält.
  • Wenn dies immer noch nicht funktioniert, überprüfen Sie die Einstellungen für den XCode-Build-Speicherort. Gehen Sie zu Preferences -> Locations -> Derived Data -> Advanced und legen Sie den Build-Speicherort auf "Relativ zum Arbeitsbereich" fest.

Screen shot

27

Ich habe das Projekt von "Partners" in "NBSelector" umbenannt.

Ich hatte nach dem Umbenennen des Projekts den Fehler "Bibliothek wurde für libPods-Partners nicht gefunden". Xcode hat versucht, auf eine alte Partners.a-Datei zu verlinken. Entfernen Sie es einfach, wenn Sie podInstalled nach dem Umbenennen haben.

enter image description here

11
Naloiko Eugene

ONLY_ACTIVE_Arch = NO in allen Pods löste das Problem für mich. Um dies dauerhaft zu machen, fügte ich meiner Pod-Datei einen post_install-Hook hinzu:

post_install do |installer_representation|
  installer_representation.project.targets.each do |target|
      target.build_configurations.each do |config|
            config.build_settings['ONLY_ACTIVE_Arch'] = 'NO'
      end
  end
end

pod install und du bist fertig.

11
melle

In meinem Fall bestand das Problem darin, dass der abgeleitete Datenort von Xcode auf die Option "Legacy" gesetzt wurde. Das CocoaPods-Ziel (libPods.a) wurde ordnungsgemäß erstellt, aber Xcode suchte am falschen Ort danach.

Durch Umschalten auf "Unique" (Standardeinstellung) wurde das Problem behoben. Sie können dies tun, indem Sie auf Einstellungen> Standorte gehen und auf die Schaltfläche Erweitert klicken.

8
Adam Sharp

Haben Sie eine "Distribution" oder eine ähnliche Konfiguration erstellt, um Ad-Hoc- und App Store-Archive zu erstellen? Wie viele andere folgte ich den Empfehlungen von Apple und nannte die "Release" -Konfiguration, nannte sie "Distribution" und setzte andere Signaturregeln. Nun, vielleicht war das eine Empfehlung, bevor sie in Organiser Schemata und die Option "Verteilen" einführten. Jedenfalls hatte ich es gerade von früher.

Dann hatte ich das gleiche Problem mit Pods. Beim Debugging hat alles gut funktioniert, aber die Archivierung schlug mit einem Verbindungsfehler fehl. Nachdem ich dies und das ausprobiert hatte, änderte ich die Archivkonfiguration meines ursprünglichen Projekts von 'Distribution' in 'Release' und der Link-Fehler war verschwunden.

Das Archiv wurde jedoch nicht in Organizer angezeigt, obwohl ich es im Dateisystem lokalisieren konnte, aber es hatte die Größe 0.

Der letzte Schritt zur Behebung dieses Problems bestand darin, die Einstellung "Skip Install" für "Release" auf "NO" zu ändern. Beachten Sie, dass Sie dies nur für Ihr Hauptprojekt tun müssen, nicht jedoch für das Pods-Projekt. Belassen Sie das Pod-Projekt besser, da es jedes Mal generiert wird, wenn Sie "Pod-Installation" ausführen.

Update Habe gerade eine Antwort von CocoaPods devs Es scheint für mich nicht zu funktionieren, da ich die Pods-Konfiguration richtig eingestellt hatte . Aber es könnte jemand anderem helfen.

8
i4niac

Das Hinzufügen der "Bibliothekssuchpfade" (in den Build-Einstellungen von "MyProject") zu "Pods/build/Debug-iphonesimulator" funktionierte für mich (bei Verwendung des Simulators).

Verstanden von hier: https://github.com/CocoaPods/CocoaPods/issues/121#issuecomment-5452473

5
Jan M

Ich habe festgestellt, dass das Auswählen von "Suche nach impliziten Abhängigkeiten" (unter Produkt-/Bearbeitungsschema) dieses Problem beheben kann, anstatt Pods als Ziel hinzufügen zu müssen.

4
StackRunner

Wenn Sie für iOS7 und Xcode5 archivieren und diese Fehler erhalten haben, finden Sie diesen Link. Es scheint, als würde Apple eine Architektur fallen lassen, die Kakaoschoten benötigen https://github.com/CocoaPods/CocoaPods/pull/1352

4

Nach dem Update der Cocoapods habe ich eine alte Cocoapod-Version verwendet. Ich schlage vor, meinen installierten Pod wegen eines größeren Updates zu aktualisieren, da ich ihn nach langer Zeit aktualisiere. Ich aktualisiere es und die neuen Versions-Pods wurden gut aktualisiert. Aber danach bekam ich den Fehler wie library not found for -lPods-xxxprojectName-xxxxxpodName

Nachdem ich so viele Lösungen ausprobiert hatte, die als Antwort auf diese Frage gegeben wurden, funktionierte nichts davon für mich. Dann ging ich zu meiner Projekteinstellung und stellte fest, dass der Pod-Pfad geändert wurde, der sich auf Other Linker Flag befand.

Überprüfe deinen Manage Schemes auf den korrekten Namen des Pods und vergleiche ihn in Other Linker Flag, ändere ihn falls nicht ähnlich

Der alte Pod-Pfad war -l"lPods-xxxprojectName-xxxxxpodName"

Aber neue Pods waren nur xxxxxpodName, also ersetzte ich Other Linker Flag durch neue wie unten

Wurde zum Pod-Pfad -l"xxxxxpodName" geändert, und es funktioniert.

Ich kenne den perfekten Grund dafür nicht, aber es könnte jemandem helfen. 

3
Bhavin_m

Ich habe jede Antwort hier durchgelesen, aber für mich war das wahnsinnig einfach ... Gehen Sie zu Ziel -> Phasen erstellen, entfernen Sie dann libPods-YourProject.a und fügen Sie es erneut mit "+" hinzu. Machen Sie sich keine Sorgen, dass die Bibliothek rot ist.

3
cph2117

In meinem Fall hat pod install das Problem behoben, nachdem Verteilungs- und Freigabeschemata erstellt wurden.

2
kernix

Gelöst es durch die folgenden Schritte: 

  • Aktualisieren Sie Ihre Cocoapods-Installation. ($ [Sudo] Edelstein installieren Kokosapoden)
  • Installieren Sie Ihre Abhängigkeiten unter Ihrem Projekt erneut. (Pod installieren)
  • Reinigen und neu erstellen/archivieren. 
2
SarpErdag

wenn Sie iOS7 und Xcode 5 verwenden, machen Sie Folgendes:

  • Wählen Sie Ihr Pod-Projekt aus.
  • Gehen Sie zu den Ziel-Pods und wählen Sie in den Build-Einstellungen Architekturen> Standardarchitekturen (armv7, armv7s) aus.
  • Machen Sie dasselbe für jedes Ziel Ihres Pod-Projekts.
1
rabenson

versuchen 

link_with 'YouTarget1', 'YouTarget2' ...

Mein Projekt hat funktioniert, die Ziele haben plötzlich aufgehört zu übersetzen. Dann "link_with" hinzugefügt und wieder normal. 

Anscheinend verbindet es sich jetzt nur noch mit dem ersten Ziel.

http://guides.cocoapods.org/syntax/podfile.html#link_with

1
Wagner Sales

Verwenden von Xcode 5 mit iOS 7

Das habe ich getan, nachdem ich eine Stunde lang festgefahren war. Entfernen Sie ARM64 aus der Erstellungseinstellung> Gültige Architektur. 

ADDED: Für meinen Fall war es auch kein abgeleiteter Datenort. Ich wählte einmalig für Baulage. 

1
ytbryan

Ich habe das gleiche Problem bei der Archivierung für Submit. Eine Diskussion zu diesem Thema finden Sie hier: https://github.com/CocoaPods/CocoaPods/issues/155

Zusammenfassend arbeiten zwei Methoden für mich:

  1. Setzen Sie "Voreinstellungen -> Standorte -> Erweitert" auf "Benutzerdefiniert (relativ zum Arbeitsbereich)" ODER
  2. Setze die Poddatei auf - platform :ios, :deployment_target => "5.0"
1
BabyPanda

Ich habe JEDE Antwort in diesem Thread ohne Erfolg versucht. Mein Problem wurde schließlich behoben, indem der "Vor-Konfigurations-Build-Produktpfad" in meinem Zielprojekt mit dem Wert im Pods-Projekt abgeglichen wurde. Es stellte sich heraus, dass sie an zwei verschiedenen Ausgabestandorten gebaut haben. Keiner der anderen Vorschläge in diesem Thread war für mich relevant. Es wäre großartig, wenn XCode eine nützliche Fehlerbeschreibung (wie WARUM die lib - Datei nicht gefunden, keine passende Architektur gefunden usw.) verwendet.

1
user3588900

Wenn Sie den Pod bereits in Ihrem System installiert und ein Update durchgeführt haben, kann Ihr Xcode die Pods-Bibliothek nicht finden. Um dieses Problem zu beheben, überprüfen Sie bitte die folgenden Ursachen:

  1. Sie verwenden den Arbeitsbereich.
  2. Die Pods-Bibliothek wird erstellt.
  3. Die Pod-Bibliothek wird in der Produktgruppe Ihres Projekts referenziert.
  4. Ihr Ziel enthält die Pods-Bibliothek in der Link-Build-Phase.
1
Gagan_iOS

Wenn dieses Problem weiterhin auftritt, versuchen Sie Folgendes:

pod update

Habe die Arbeit für mich gemacht, hoffe das hilft dir.

1
Shobhit C

Ich habe den Arbeitsbereich geöffnet, bekam aber den gleichen Fehler.

Nur aktive Architektur erstellen aufYESsetzen

löse mein Problem.

0
Joeful6

Um die Antwort von @ i4niac zu vereinfachen:

Eine weitere häufige Ursache hierfür ist ein Missverhältnis in der Build-Konfiguration des Schemas. In unserem Fall hatte unser 'AppName-AppStore'-Schema "Release" als Archiv-Build-Konfiguration anstelle von "AppStore" (könnte umgekehrt sein) Andere).

0
yonix

Ich habe dieses Problem gelöst, indem Architekturen und gültige Architekturen für alle Pods gleich sind wie für mein Projekt. Die Lösung für mich war also:

  • update Kakaoschoten: Sudo Gem Update Kakaoschoten
  • update-Pods: Pod-Update
  • Gehen Sie in Ihren Pods zu Build-Einstellungen> Architekturen und setzen Sie hier für Architekturen und gültige Architekturen dieselben Werte wie im Hauptprojekt.
0
Mumbar

Ich hatte das gleiche Problem. Es stellte sich in meinem Fall als xCode-Fehler heraus. Alles, was ich tun musste, war, die "Valid Archs" zu entfernen, sie sauber zu machen, sie wieder hinzuzufügen und ich konnte loslegen. Probieren Sie auch generell aktualisierte Cocoapoden aus.

0
anders

Das hatte ich auch, Cocoapods Version 0.28.0

Einfache Korrektur hier, kein langes Lesen: - Deinstallieren Sie die Cocoapods (Befehlszeile oder AppCode) - Löschen Sie die Dateien Poddatei, Poddatei.lock und Pods

  • installieren Sie die Cocoapods erneut
  • starten Sie den neu erstellten Arbeitsbereich. 
0
brainray

Ich habe libPods.a in target vermisst, so dass das erste, was zu tun ist, es zu Linked Frameworks und Bibliotheken hinzufügt. 

Weiter, Produkt -> Erstellen für -> Profiling (oder vor dem Hinzufügen von libPods.a, falls Sie es komplett vermissen) 

und schließlich überprüfen Sie Ihre Ressourcen in Copy Pods script in Build-Phasen (Wenn es dem zweiten Ziel entspricht, hängt es manchmal vom Podfile und seinen Zielen ab). Dann solltest du erfolgreich bauen.

0
Jakub Truhlář

die Datei some_project.workspace wurde in some_project.workspace.backup umbenannt und $ pod install ausgeführt. Es wurde eine neue Arbeitsbereichsdatei erstellt, und der Fehler wurde behoben.

0

Ich stieß auf ein Problem, bei dem ich meinen eigenen .xcworkspace erstellt hatte, in dem das Pods-Formular sein eigenes erstellte (wo es seine Bibliothek anfügt). 

lösung

Ich habe den erstellten .xcworkspace verschoben, pod install erneut ausgeführt und dann den .xcworkspace mit dem pods manuell zusammengefügt, der durch Öffnen beider Arbeitsbereiche und Ziehen von Dateien von einem Arbeitsbereich in den anderen erstellt wurde.

0
Jacksonkr

versuchen Sie es mit der xcworkspace-Datei anstelle der xcodeproj-Datei

0
Hoàng Nghĩa

Das Entfernen der CocoaPods-Cache-Ordner ~/Library/Caches/CocoaPods und des Installations-Pods funktioniert für mich.

0
kaushal

In meinem Fall half Nr. 4 der FAQ in diesem Link: https://github.com/CocoaPods/CocoaPods/wiki/Creating-a-project-that-uses-CocoaPods

Es gibt einige weitere Dinge, die Sie ausprobieren können, wenn das Problem weiterhin besteht.

0
user511