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 Pods
Verzeichnis zu entfernen und dann auszuführen. pod install
Ich öffne das, .xcworkspace
wie 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,
libpods.a
sich dies in Ihren "verknüpften Frameworks und Bibliotheken" Ihres Ziels befindet? Und auch in Ihren Build-Phasen?Antworten:
In
Project Navigator
dem Ordner hattePods
ich einen,Pods.framework
der rot war. Es war auch in vorhandenLinked Frameworks and Libraries
. Ich habe beide Referenzen entfernt und der Fehler ist verschwunden.TL; DR
Entfernen
Pods.framework
in:Pods
Linked Frameworks and Libraries
quelle
use_frameworks!
und dann ohne und vielleicht wurde dasPods.framework
während nicht richtig gelöschtpod install
. Könnte ein Fehler in Cocoapods sein.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.
quelle
Xcode 9, 10, 11, 11.5
Installieren Sie https://github.com/CocoaPods/cocoapods-deintegrate
dann
quelle
Ich habe diesen Fehler behoben, indem ich die roten
.framework
Dateien gelöscht habe , die sich in einem OrdnerFrameworks
in derproject navigator
. Ich denke, dies löschte auch automatisch die entsprechenden roten Einträge imLinked Frameworks and Libraries
Bereich derGeneral
Einstellungen.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?
quelle
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.
quelle
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.
quelle
Ich hatte ein ähnliches Problem wie
Es wurde gelöst, indem Folgendes entfernt wurde. Zum Ziel OneSignalNotificationServiceExtension> Build - Phase> Link Binary mit Bibliotheken und Löschen Pods_OneSignalNotificationServiceExtension.framework Hoffnung , das hilft. Prost.
quelle
Pods_OneSignalNotificationServiceExtension.framework
kommt der zurück, um mich in den verknüpften Frameworks und Bibliotheken desOneSignalNotificationServiceExtension
Ziels zu verfolgen .pod install
, es ist zufällig.*.xcodeproj/*.xcworkspace
über die*.xcworkspace
mit meinem VSTS .yml Automatisierungsskript. Ich weiß es besser mit einer GUI, gewöhne mich aber immer noch an die Anforderungen in der Skripterstellung.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
gefolgt von
quelle
Sie sollten Ihrem Projekt eine Datei wie dieses Bild löschen.
quelle
Entfernen Sie einfach Ihr .framework aus der Liste "Ihr Projekt-> Allgemein-> Verknüpftes Framework & Bibliotheken".
quelle
Es ist mir passiert , weil ich das geändert
Deployment Target
in ,General
aber vergessen , die sich ändernDeployment Target
inPods > General
.quelle
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
Pods.framework
Pods-<project-name>.framework
eingebettet istDie Einstellungen finden Sie unter ZIELE -> Verknüpfte Frameworks und Bibliotheken.
quelle
Schritt 1
Schritt 2
Schritt 3
Schritt 4
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.
quelle
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:
Installieren Sie dann Ihren Pod Agian.
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
quelle
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.
quelle
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.quelle
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:
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.
quelle
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
und installiere dann meinen Pod erneut:
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:
und ich füge Pods Schema hinzu, um zu verwalten:
Wenn Sie dieses Pods.framework separat erstellen, wird das Pods.framework-Symbol wieder richtig:
Also gehe ich zur Build-Einstellung und bearbeite die
"Framework Search Path"
mit"${inherited}"
, und jetzt gehen alle Probleme aus, jubeln !!!! :)quelle
${inherited}
Pfad hinzugefügt und dannProduct->Clean Build Folder
, und das war's, jetzt baut er sich ohne Probleme auf.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:
anstatt
quelle
Ich habe dieses Problem behoben, indem ich das Projekt ausgewählt habe, von dem es heruntergeladen
CocoaPods
und 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.quelle
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.
quelle
In meinem Fall gab es einen Verweis auf die Bibliothek, die ich entfernt habe
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.
quelle
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 benutzt
use_frameworks!
in meinem Podfile unter jedem meiner Ziele als solches verwendet:VOR
NACH DEM
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 install
Stellen 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 .quelle
Wenn Sie die .xcworkspace-Datei geöffnet haben und immer noch den gleichen Fehler erhalten:
quelle
Löschen Sie den Framework-Ordner, der nach der Pod-Installation oder -Update erstellt wurde
quelle
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.
quelle
Ich habe dieses Problem gelöst, indem ich die
.framework
Datei auf das verknüpfte Framework und die Bibliotheken gezogen habeAngenommen, ich hatte dieses Problem aufgrund eines Fehlers
FIRAnalyticsConnector not found
und ziehe dieFIRAnalyticsConnector.framwork
Datei einfach auf Linked Framework und Bibliotheken, und mein Problem ist gelöstquelle
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.
quelle
Vielleicht öffnen Sie plötzlich die falsche Datei von .xcodprj und sollten .xcworkspace öffnen
quelle
Bitte überprüfen Sie Ihre ausführbare Datei in .Framework wie
Der Name der ausführbaren Datei sollte ohne Erweiterung so aussehen.
Einige Frameworks zeigen sich so
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
quelle