CocoaPods-Fehler beim Erstellen des Projekts

178

Ich kann kein Projekt erstellen, das CocoaPods verwendet. Ich erhalte folgende Fehler:

diff: /../Podfile.lock: No such file or directory
diff: Manifest.lock: No such file or directory error: 
The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.`

$ pod installscheint gut zu funktionieren und fügt Podsmeinem Arbeitsbereich ein Projekt hinzu . Ich habe es versucht, $ pod updateaber das hilft nicht.

Es scheint, dass dies PODS_ROOTnicht festgelegt wird.

Podfile:

platform :ios, '6.0'

workspace 'Example.xcworkspace'
xcodeproj 'example/Example.xcodeproj' 

pod 'TestFlightSDK', '~> 1.3.0-beta.5'
pod 'TestFlightLogger', '~> 0.0.2'
pod 'CocoaLumberjack', '~> 1.6.2'
pod 'Reachability', '~> 3.1.0'
pod 'SBJson', '~> 3.2'
pod 'MKMapViewZoom', '~> 1.0.0'
Ablenkung
quelle
3
Eine einfache "Pod-Installation" behebt dieses
Problem
Wichtig! [!] From now on use MyProject.xcworkspace.nicht te alt `.xcodeproj '
Dawid Drozd
Wenn Sie in einem Emulator testen, gibt es nur einen weißen Bildschirm
desigNerd

Antworten:

171

Ich hatte ein ähnliches Problem, als ich größere Änderungen an meinem Podfile vorgenommen habe. Meine Lösung bestand darin, die Arbeitsbereichsdatei zu entfernen und pod installerneut auszuführen :

rm -rf MyProject.xcworkspace
pod install
Asgoth
quelle
17
Bedeutet, dass Cocoapods nicht richtig installiert sind. runsudo gem install cocoapods
asgoth
4
gem install cocoapodsist noch besser. Die meiste Zeit sudosollte mit Edelsteinen nicht notwendig sein.
PatrickNLT
5
Ihre Antwort machte meinen Tag. Ich war stundenlang darin gefangen. Hüte ab
Shaikh
Vielen Dank dafür, es hat den Fehler behoben. FWIW, habe ich den Fehler nachdem ich eingem update cocoapods
rounak
Problem behoben. Fehler beim Ausführen von "Pod Update"
Swebal
68

TLDR: Dies ist höchstwahrscheinlich ein Fehler bei Xcode. Das Schließen und erneute Öffnen des Projekts ist normalerweise die einfachste Lösung. Vorausgesetzt, alles andere ist richtig konfiguriert .


Ich erhalte gelegentlich den gleichen Fehler, wenn ich das PodsVerzeichnis lösche und dann ausführe pod install.

In den Projektinformationen erscheint alles korrekt:

Geben Sie hier die Bildbeschreibung ein

Wenn ich jedoch zu den benutzerdefinierten Build-Einstellungen des Ziels gehe, fehlt der Eintrag PODS_ROOT entweder vollständig oder ist für eine oder mehrere Konfigurationen leer. Was beim Erstellen den folgenden Fehler verursacht:

Geben Sie hier die Bildbeschreibung ein

Die einfachste Lösung besteht darin, das Projekt in Xcode zu schließen und erneut zu öffnen .

Wenn Sie zu den Build-Einstellungen des Ziels gehen und nach Alle filtern , wird der PODS_ROOTEintrag jetzt ohne Fehler angezeigt:

Geben Sie hier die Bildbeschreibung ein

Es sollte jetzt fehlerfrei erstellt werden.


Hinweis: Sogar das offizielle AFNetworking iOS-Beispiel von Cocoa Pods weist dieses Problem auf, was mich zu der Annahme veranlasst, dass es sich um einen Fehler mit Xcode handelt.

Eine alternative Lösung besteht darin, die Konfiguration manuell auf Noneund dann auf den ursprünglichen Wert zurückzusetzen:

Geben Sie hier die Bildbeschreibung ein

Sinnvoll
quelle
1
Es stellte sich heraus, dass es für mich war! Mein $ PODS_ROOT wurde falsch eingestellt
Alex Ryan
Nach langer Suche nach Fix konnte ich es dank Ihrer Lösung fehlerfrei zum Laufen bringen. Ich musste nur die Konfiguration in Keine und zurück zu Pods
Glogo
Dies ist gut, wenn niemand geholfen hat.
32

Gehen Sie zu den Zielen Build Settingsund stellen Sie sicher, dass der Wert von PODS_ROOTgleich ${SRCROOT}/Podsim Abschnitt "Benutzerdefiniert" ist.

Geben Sie hier die Bildbeschreibung ein

Jagie
quelle
Funktioniert super. Das wurde gebraucht.
Pr4n
Ich musste PODS_ROOTmein Ziel mit diesem Pfad und Viola hinzufügen (ich habe es auch header search pathsals "$ (PODS_ROOT)" rekursiv
hinzugefügt
Hat nicht für mich gearbeitet.
30

Update: a podfile.lockist erforderlich und sollte von der Versionskontrolle nicht ignoriert werden. Es verfolgt die Versionen der Bibliotheken, die bei einer bestimmten Pod-Installation installiert wurden. (Es ähnelt gemfile.lock und composer.lock für Rails und PHP-Abhängigkeitsmanagement). Um mehr zu erfahren, lesen Sie bitte die Dokumente . Kredit geht an cbowns .


In meinem Fall habe ich für mein Projekt eine Hausreinigung durchgeführt (dh die Integrationstests als Git-Submodul verzweigt, doppelte Dateien entfernt usw.) und das Endergebnis auf ein Git-Remote-Repo übertragen. Alle Kunden, die mein Repo geklont haben, litten unter dem oben genannten Fehler. Inspiriert von Hlung's Kommentar oben, stellte ich fest, dass es einige baumelnde Pod-Skripte gab, die versuchten, gegen einige nicht existierende Dateien zu laufen. Also ging ich zu meiner Zielerstellungsphase und löschte alle verbleibenden Phasen, die irgendetwas mit Kakaofrüchten zu tun hatten (und Hlung's Kommentar, den er zum Löschen vorschlägt, Copy Pods Manifest.lockund copy pod resources.. meine wurden anders benannt, vielleicht b / c ich benutze Xcode 5 .. die Punkt ist, diese baumelnden Bauphasen zu löschen) ..

Abbood
quelle
1
Dafür gibt es nichts Podfile.lock: Lesen Sie die Dokumentation von Cocoapods zum Thema "Arbeiten mit Teams", um weitere Informationen zu erhalten.
cbowns
@cbowns Sie haben absolut Recht, danke für den Kommentar. Ich habe meine Antwort aktualisiert.
Abbood
12
Ich habe meine xcworkspace-Datei gelöscht und die Pod-Installation durchgeführt, erhalte jedoch immer noch die gleiche Fehlermeldung.
Jowie
@jowie gleich hier ... kannst du mich bitte führen, wenn du es gelöst hast.
Bandish Dave
28

Es scheint also, dass CocoaPods die Konfigurationen für mein Projekt nicht festgelegt hat. Sie müssen auf dem basieren, Pods.xcconfigwas in der gefunden wird Pods/Target Support Files/Pods. Damit dies funktioniert, musste ich Folgendes tun:

  1. Ziehen Sie diese Datei in mein Xcode-Projekt in Xcode und wählen Sie "Nicht kopieren".
  2. Jetzt gibt es eine Referenz in unserem Projekt, wir können die Konfigurationen festlegen: Geben Sie hier die Bildbeschreibung ein

Ich hatte dann einen anderen Build-Fehler, der möglicherweise verwandt war oder nicht. Der Pfad zu dem im definierten Shell-Skript Copy Pods Resourceswar falsch.

"${SRCROOT}/Pods/Pods-resources.sh"

Falsch gelöst. Es schien, dass SRCROOT ein zusätzliches Verzeichnis hinzufügte, das nicht im Pfad vorhanden war. Also habe ich den Pfad zum Projektordner fest codiert.

Dadurch konnte ich bauen.

Warum fressen so viele Dinge, die Ihnen Zeit sparen sollen, sie auf?

Hinweis: Weitere Informationen finden Sie in der Antwort von @ abood.

Ablenkung
quelle
27
Wenn dieser Fehler angezeigt wird, weil Sie alle Pods von einem Ziel entfernt haben, sind keine Pod-Skripte mehr vorhanden, es wird jedoch weiterhin versucht, ihn auszuführen. Sie müssen zu Ihrer Zielerstellungsphase gehen und löschen Copy Pods Manifest.lockund Copy Pods ResourcesPhasen. Und entfernen Sie auch libPods.ain Link Binary mit Bibliotheken.
Hlung
@Hlung ausgezeichneter Kommentar .. es behebt tatsächlich die Grundursache des Problems, ich habe die oben genannten Lösungen ausprobiert und ich habe immer noch eine Podfile.lock (die meisten .gitignoreDateien sind so konfiguriert, dass sie ignoriert werden .. und das zu Recht) .. diese Datei sollte nicht Wenn du es als Antwort aufschreibst, würde ich dir eine +1 geben!
Abbood
@abbood Schreib es auf und ich gebe dir den Gewinn.
Undistraction
Ich wollte nur hinzufügen, dass in diesem Problem auf der Github-Seite von CocoaPods erwähnt wird, dass die Erstellungsphasen auf genau dieses Problem überprüft werden (noch ähnlicher, da ich mehrere Ziele habe).
Problem
22

Ich habe ein ähnliches Problem, das hat funktioniert:

  1. In Xcode:
    • Reinigen
    • Löschen Sie abgeleitete Daten in Xcode / Fenster / Organizer / Projekt / Ihr Projekt
    • Pod-Verzeichnis (es enthält Konfigurationsdateien, löscht Dateien, nicht nur Referenzen!)
    • Alle Verweise auf die Pod-Konfigurationsdateien für jedes Ziel in Projekt / Konfigurationen (Debug / Release) wurden entfernt.
    • "Ziele / Phasen erstellen / Pods-Ressourcen kopieren" wurde von allen Zielen entfernt
    • "Ziele / Build-Einstellungen / Benutzerdefiniert / PODS_ROOT" wurde aus allen Zielen entfernt
  2. Beenden Sie Xcode
  3. In Ihrem Projektverzeichnis:
    • rm -rf Pods
    • (Optional) rm -rf YourProject.xcworkspace
    • rm -rf Podfile.lock
  4. Pod installieren
  5. Öffnen Sie YourProject.xcworkspace in Xcode
Tibidabo
quelle
4
Entfernen Sie Ihren Arbeitsbereich nicht einfach willkürlich - Auch wenn Ihr Arbeitsbereich von Cocoapods erstellt wurde, wird er von Ihnen verwaltet.
Joseph DeCarlo
Dies funktionierte für mich, löschte jede Datei im Zusammenhang mit Pods und installierte Pods neu.
Leena
15

Ich habe das gleiche Problem durch die folgenden Schritte beseitigt:

  • Xcode->Product->Clean Build Folder(Halten Sie die Alt-Taste am Produkt gedrückt , um es anzuzeigen.)
  • Öffnen Xcode->Window->OrganizerSie die ProjectsRegisterkarte und wählen Sie sie aus . Suchen Sie dann Ihr Projekt und löschen Sie derived data das Projekt.
Timuçin
quelle
1
Hat für mich gearbeitet. War genervt. Jetzt glücklich.
Fresidue
In meinem Fall hatte ich Probleme mit einem Github-Projekt. Also musste ich das Projektverzeichnis (rm -rf) komplett entfernen, das oben genannte tun, dann das Projekt entpacken, den Pod installieren und den xcworkspace öffnen und keine Fehler!
rharvey
Hat für mich gearbeitet. Danke dir.
Xevser
10

Einfach wie folgt gelöst:

  • (sudo) gem install cocoapods

  • Pod installieren

  • reinigen und bauen

Es scheint, dass das Problem durch eines unserer Teammitglieder verursacht wurde, das eine neuere Cocoapods-Edelsteininstallation hatte.

Diego
quelle
1
Ich musste Cocoapods neu installieren UND XCode neu starten, um dieses Problem zu beheben.
Der Camster
Musste laufen gem install cocoapodsund dann pod installund fast alles andere in diesem Thread erwähnt ...
Echelon
9

  1. Öffnen Sie die .xcodeproj-Datei in erhabenem Text
  2. Entfernen Sie diese beiden Zeilen, wenn Sie saubere Pods-Ordner haben. Ich meine, wenn Sie die obigen Fehler erhalten haben, nachdem Sie den Pods-Ordner entfernt haben
Ivan Zhang
quelle
gibt mir eine ld: Bibliothek nicht gefunden für -lPods - / * Mein Projektname * / Tests
SleepsOnNewspapers
Gibt mir dies auch Fehler bei zukünftigen Pod-Installationen?
SleepsOnNewspapers
6

Hatte das gleiche Problem mit /Pods/Pods-resources.sh: Keine solche Datei oder kein solches Verzeichnis, selbst nachdem Dateien usw., die sich auf Pods beziehen, entfernt wurden.

Sie haben es beseitigt, indem Sie zu target-> Build-Phasen gegangen sind und dann die Build-Phase "Copy Pod Resources" entfernt haben.

Roshi
quelle
coole Lösung, aber ich fürchte, nachdem Sie das Projekt und die abgeleiteten Daten bereinigt haben, werden Sie vielleicht feststellen, warum Sie das brauchen :)
Julian Król
Dann bekomme ich ".h" Datei nicht gefunden Fehler von Dateiname, der den Pod verwendet
coolcool1994
4

Ich hatte kürzlich das gleiche Problem. Ich habe jeden möglichen Rat ausprobiert, nichts außer diesem Plugin hat bei mir funktioniert:

https://github.com/kylef/cocoapods-deintegrate

Nach der Bereinigung der aktuellen Cocoapods-Integration müssen noch Podfile, Podfile.lock und der .xcworkspace gelöscht werden. Dann einfach nochmal installieren.

Ich hoffe ich werde jemandem dabei helfen.

Chiara
quelle
Dies war das einzige, was es für mich behoben hat.
Charlie
Ich bin froh, dass ich Charlie helfen konnte
Chiara
4

Dieses Problem wurde gelöst.

  1. Wählen Sie das Ziel Ihres Projekts
  2. Wählen Sie Build Settings
  3. Öffnen Sie die benutzerdefinierte Dropdown-Liste
  4. Ändern Sie den Wert des Schlüssels PODS_ROOT in $ {SRCROOT} / Pods

Screenshot für die obigen Schritte

Jayprakash Dubey
quelle
1
Ich mochte deine. Aber ich bekomme immer noch den gleichen beschissenen Fehler. Was ist das!!! Niemand hat eine richtige Antwort darauf.
@YumYumYum: Versuchen Sie dann, Ihre Pods neu zu installieren.
Jayprakash Dubey
Versuchte vor allem Lösungen, aber diese funktionierte. In meinem Fall blieb es, den Weg in einer Veröffentlichung festzulegen.
Ankit Kargathra
3

Ich denke, es hat hier einen Fehler.
Für mich lösche ich PodsOrdner und Podfile.lockmache das pod installerneut, um das Problem zu lösen.
Diese Nachricht wird ignoriert .. :(

Johnny
quelle
2

Es war nicht sehr intuitiv. Ich ging zu den Einstellungen des Basisprojekts und codierte dann die Pfade zu pod.lock und pod.manifest unter Check Pods Manifest.lock fest, da sie sich tatsächlich in verschiedenen Ordnern befanden. Meine Pfade sahen also folgendermaßen aus:

diff "/Users/admin/Desktop/Experimental/projectfolder/Podfile.lock" "/Users/admin/Desktop/Experimental/projectfolder/Pods/Manifest.lock" > /dev/null
if [[ $? != 0 ]] ; then
    cat << EOM
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
EOM
    exit 1
fi
Vladimir Stazhilov
quelle
Das Skript scheint von CocoaPod generiert zu werden. Wo hast du dieses Skript abgelegt?
Nickolas
2

Sie können Folgendes versuchen. Es wurde für mich behoben.

  1. install gem install cocoapods-deintegrate
  2. install gem install cocoapods-clean
  3. gehe zu pod deintegrate
  4. Schote sauber
  5. Pod installieren

Die Plugins werden für Ihr Projekt aus den Cocoapods entfernt und frisch installiert.

MD Aslam Ansari
quelle
2

In meinem Fall war dies ein Testziel, bei dem ich alle Pods aus meiner Poddatei entfernt habe (weil ich Pods hinzugefügt habe, die ich später erkannte, dass ich sie in diesem Ziel nicht benötigte). Keine der anderen Lösungen hier hat bei mir funktioniert.

  1. Wechseln Sie in den Projekteinstellungen zur Registerkarte Build-Phasen für das Ziel, das Probleme verursacht.

  2. Löschen Sie den Abschnitt "Pods-Manifest prüfen" und "Pods-Ressourcen kopieren".

  3. Entfernen Sie in "Binär mit Bibliotheken verknüpfen" libPods-YourTarget.a

  4. Erweitern Sie in Ihren Projekteinstellungen auf der Registerkarte "Info" die Option "Konfigurationen" und setzen Sie die Konfiguration für das Ziel für Debug und Release auf "Keine". (Dadurch werden einige fehlende Datei-Warnungen behoben.)

  5. Löschen Sie die abgeleiteten Daten Ihres Projekts (Fenster> Projekte> Löschen [neben Ihrem Projekt) und starten Sie Xcode neu. Ziel erstellen / ausführen.

Shim
quelle
2

Das machte meinen Tag!

  1. Löschen der Datei Podfile.lock in Ihrem Projektordner
  2. Löschen des Pods-Ordners in Ihrem Projektordner
  3. Führen Sie pod installin Ihrem Projektordner
  4. Führen Sie eine "Reinigung" in Xcode durch
  5. Erstellen Sie Ihr Projekt neu
alitosuner
quelle
1

In meinem Fall war das Problem falsch. Lösung hier http://guides.cocoapods.org/using/troubleshooting.html

Wenn etwas nicht zu funktionieren scheint, stellen Sie zunächst sicher, dass Sie alle Optionen, die in den Build-Einstellungen Ihres Projekts aus der Datei Pods.xcconfig festgelegt wurden, nicht vollständig überschreiben. Um Optionen aus den Build-Einstellungen Ihres Projekts Werte hinzuzufügen, stellen Sie der Werteliste $ (geerbt) voran .

R00Wir
quelle
1

Ich hatte dieses Problem.

Ich habe das Problem behoben, indem ich den Pod vollständig gelöscht und erneut implementiert habe. Stellen Sie sicher, dass Sie "Copy Pods Resources" und "Check Pods Manifest.lock" aus "Build Phases" auf allen Zielen löschen, wie hier angegeben: Wie entferne ich CocoaPods aus einem Projekt?

dloomb
quelle
1

Um diesen Fehler zu beseitigen, musste ich das PodsVerzeichnis löschen und die Podfile.lockDatei löschen .

BlackHatSamurai
quelle
Ich stimme Ihnen zu, ich habe alles getan, was Sie getan haben, einschließlich des Entfernens der Arbeitsbereichsdatei, und es hat bei mir funktioniert.
Alix
1

In meinem Fall habe ich Podfile.lock & Manifest.lock in die Quellcodeverwaltung eingefügt, aber ich habe vergessen, Pods-Project.debug (release) .xcconfig-Dateien zur Quellcodeverwaltung hinzuzufügen (indem ich versehentlich * .xcconfig zu .gitignore hinzugefügt habe), dann habe ich habe die gleichen Kompilierungsfehler mit genau dem gleichen Grund, PODS_ROOT wird nicht gesetzt.

Wenn das Ziel also darin besteht, dass das Projekt nach dem Klonen des Repos sofort erstellt und ausgeführt werden kann, ohne dass CocoaPods auf dem Computer installiert ist, fügen Sie entweder das gesamte Pods-Verzeichnis in der Quellcodeverwaltung hinzu oder fügen Sie Podfile.lock, Manifest.lock, die xcconfig-Dateien des Projekts und hinzu Pods xcconfig-Dateien zur Quellcodeverwaltung.

Ich habe die private .xcconfig , die die Build-Einstellungen mit der Standard-CocoaPods-Konfiguration zusammenführt, nicht in die Quellcodeverwaltung übernommen.

Qiulang
quelle
1

Nachdem ich Stunden damit verbracht hatte, die Lösung zu finden, gehe zu "Phasen erstellen" und dann zu "Pods Manifest.lock überprüfen". Aktivieren Sie "Skript nur bei Installation ausführen".

Dank mir später ;)Geben Sie hier die Bildbeschreibung ein

Abdul Hadi Siraj
quelle
1

Ich hatte das gleiche Problem mit meinem IONIC- Projekt, ich habe vor allem Lösungen ausprobiert, aber kein Glück.

Wenn Sie immer noch das gleiche Problem haben, überprüfen Sie, ob die folgenden Wettereinstellungen vorhanden sind Build Settings -> User-Defined settingsoder nicht

1. PODS_ROOT 2.PODS_PODFILE_DIR_PATH

Wenn nicht vorhanden, fügen Sie es hinzu,

PODS_ROOT = ${SRCROOT}/Pods

PODS_PODFILE_DIR_PATH = ${SRCROOT}/

Es wird das Problem lösen, Lösungslink

Onkar
quelle
0

Ich habe mehrere Ziele erstellt, bevor ich Pods verwendet habe. Als ich später anfing, die anderen Ziele zu kompilieren, musste ich link_with mit der Liste der Ziele in meiner Poddatei hinzufügen.

Vladimír Slavík
quelle
0

Ich hatte das gleiche Problem. Nachdem ich meine letzten Schritte zurückverfolgt hatte, stellte ich fest, dass das Hinzufügen einer Zieldeklaration für ein neues Ziel, gefolgt von Ausführen, pod install,die Ursache des Problems war:

Geben Sie hier die Bildbeschreibung ein

Das Zurücksetzen meines Zweigs und das Bereinigen meines Projekts funktionierte nicht, da Cocoapods mindestens eine Datei geändert hat, die nicht der Quellcodeverwaltung unterliegt . Ich weiß das, weil das Problem nicht mehr bestand, nachdem ich den Remote-Zweig vor dem Hinzufügen des zusätzlichen Ziels auf ein Commit zurückgesetzt und das Repo erneut geklont hatte.

Sheamus
quelle
0

Wenn Sie ein watchOS-Ziel haben: Ich habe festgestellt, dass plötzlich Pods in der Watch- Erweiterung, aber nicht im Watch-Ziel selbst, die Dinge mit demselben Fehler kaputt gemacht haben. Die Lösung bestand darin, die Pods auch dem Überwachungsziel hinzuzufügen.

Xaphod
quelle
0

Wenn Sie nach dem Erstellen von Podfile ein neues Ziel hinzugefügt haben, löschen Sie einfach Podfile, Podfile.lock, Pods-Ordner und Arbeitsbereich und starten Sie Pods -> und installieren Sie Ihre Pods

mohammad alabid
quelle
0

Nachdem ich das oben genannte versucht hatte, stellte ich fest, dass ich einen Fehler bekam pod install

[!] CocoaPods hat die Basiskonfiguration Ihres Projekts nicht festgelegt, da für Ihr Projekt bereits ein benutzerdefinierter Konfigurationssatz festgelegt wurde.

Dies verursachte den Fehler, da cocoapods die .xcconfig-Datei nicht zu meinem Projekt hinzufügte.

Um dies zu lösen, ging ich zur InfoRegisterkarte meines Projekts. Setzen Sie my Based on Configuration File Nonefür alle Schemata und Ziele auf. Dann lief es erneutpod install

Weitere Informationen finden Sie unter diesem Link. Cocoapods Warnung - CocoaPods hat die Basiskonfiguration Ihres Projekts nicht festgelegt, da für Ihr Projekt bereits ein benutzerdefinierter Konfigurationssatz festgelegt ist

Matt Hudson
quelle
0

In meinem Fall habe ich versehentlich einen unnötigen Punkt am Ende der Konfigurationsdatei eingegeben, der dieses seltsame Problem verursacht hat. Bitte stellen Sie sicher, dass Ihre Konfigurationsdatei keine Fehler enthält!

Jidong Chen
quelle