web-dev-qa-db-de.com

CocoaPods-Fehler beim Projektaufbau

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 install scheint gut zu funktionieren und fügt meinem Workspace ein Pods-Projekt hinzu. Ich habe $ pod update ausprobiert, aber das hilft nicht.

Es scheint, dass PODS_ROOT nicht eingestellt wird.

Poddatei:

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'
176
Undistraction

Ich hatte ein ähnliches Problem, als ich mein Podfile grundlegend änderte. Meine Lösung bestand darin, die Arbeitsbereichsdatei zu entfernen und pod install erneut auszuführen:

rm -rf MyProject.xcworkspace
pod install
167
asgoth

TLDR: Dies ist höchstwahrscheinlich ein Fehler mit Xcode. Das Schließen und Wiederöffnen des Projekts ist in der Regel die einfachste Lösung. Angenommen, alles andere ist richtig konfiguriert .


Die gleiche Fehlermeldung wird gelegentlich angezeigt, wenn das Verzeichnis Pods gelöscht und dann pod install ausgeführt wird.

In der Projektinfo erscheint alles richtig:

enter image description here

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 verursacht den folgenden Fehler beim Build:

enter image description here

Die einfachste Lösung besteht in Schließen Sie das Projekt in Xcode und öffnen Sie es erneut.

Wenn Sie zu Build Settingsdes Ziels gehen und nach Alle filtern, wird der PODS_ROOT-Eintrag jetzt ohne Fehler angezeigt:

enter image description here

Es sollte jetzt fehlerfrei bauen. 


Hinweis: Auch das offizielle AFNetworking-iOS-Beispiel von Cocoa Pods weist dieses Problem auf, was mich zu der Annahme führt, dass es sich bei Xcode um einen Fehler handelt.

Ein alternativer Fix besteht darin, die Konfiguration manuell in None zu ändern und dann den ursprünglichen Wert wiederherzustellen:

enter image description here

68
Senseful

Gehen Sie zum Build Settings des Ziels und stellen Sie sicher, dass der Wert von PODS_ROOT gleich ${SRCROOT}/Pods im Abschnitt "Benutzerdefiniert" ist.

enter image description here

32
Jagie

update: a podfile.lock ist erforderlich und sollte nicht von der Versionskontrolle ignoriert werden. Es verfolgt die Versionen der Bibliotheken, die bei einer bestimmten Pod-Installation installiert werden. (Dies ist ähnlich zu gemfile.lock und composer.lock für die Verwaltung von Rails- und PHP-Abhängigkeiten. Um mehr zu erfahren, lesen Sie bitte die docs . Die Gutschrift geht an cbowns .


In meinem Fall habe ich für mein Projekt eine Hausreinigung durchgeführt (dh die Integrationstests als git-Untermodul verzweigt .. doppelte Dateien entfernt usw.) .. und das Endergebnis auf ein git remote repo verschoben. Alle Kunden, die mein Repo geklont hatten, litten unter dem oben genannten Fehler. Inspiriert durch den Kommentar von Hlung oben, erkannte ich, dass es einige hängende Pod-Skripts gab, die versuchten, mit nicht vorhandenen Dateien zu laufen. Also ging ich zu meiner Zielbauphase und löschte alle verbleibenden Phasen, die etwas mit Kakao-Schoten zu tun hatten (und Hungs Kommentar, er schlägt vor, Copy Pods Manifest.lock und copy pod resources zu löschen. Es geht darum, diese baumelnden Bauphasen zu löschen).

30
abbood

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

  1. Ziehen Sie diese Datei in Xcode in mein Xcode-Projekt und wählen Sie "Nicht kopieren".
  2. Nun gibt es in unserem Projekt eine Referenz, wir können die Konfigurationen einstellen: enter image description here

Ich hatte dann einen anderen Build-Fehler, der möglicherweise in Zusammenhang steht. Der Pfad zu dem in Copy Pods Resources definierten Shell-Skript war 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 hart codiert.

Dies erlaubte mir zu bauen.

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

Hinweis: Zur Erklärung siehe @aboods Antwort.

28
Undistraction

Ich habe ein ähnliches Problem, das funktioniert:

  1. In Xcode:
    • Sauber
    • Abgeleitete Daten in Xcode/Fenster/Organizer/Projekt/Ihr Projekt löschen
    • Pod-Verzeichnis (es enthält Konfigurationsdateien, löscht Dateien nicht nur Verweise!)
    • Alle Verweise auf die Pod-Konfigurationsdateien für jedes Ziel in Project/Configurations (Debug/Release) wurden entfernt
    • "Ziele/Phasen erstellen/Ressourcen kopieren" wurde von allen Zielen entfernt
    • "Ziele/Build-Einstellungen/Benutzerdefiniert/PODS_ROOT" wurde von 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 
21
Tibidabo

Ich habe das gleiche Problem mit den folgenden Schritten entfernt:

  • Xcode->Product->Clean Build Folder (halte alt taste auf Produkt um es zu sehen)
  • Öffnen Sie Xcode->Window->Organizer und wählen Sie die Registerkarte Projects aus. Dann finden Sie Ihr Projekt und löschen derived data des Projekts.
15
Timuçin

Einfach gelöst, indem Sie Folgendes tun:

  • (Sudo) Edelstein installieren Kokosapoden

  • pod installieren

  • reinigen und bauen

es scheint, dass das Problem von einem unserer Teammitglieder verursacht wurde, die eine neuere Installation von Kokosapod-Edelsteinen hatten.

10
Diego

  1. Öffnen Sie die .xcodeproj-Datei in erhabenem Text
  2. entfernen Sie diese beiden Zeilen. Wenn Sie saubere Pod-Ordner haben, meine ich, wenn Sie die obigen Fehler erhalten haben, nachdem Sie den Pod-Ordner entfernt haben
9
Ivan Zhang

Hatte dasselbe Problem /Pods/Pods-resources.sh: Keine solche Datei oder Verzeichnis , Auch wenn Dateien usw., die sich auf Pods beziehen, entfernt wurden.

Befreien Sie sich davon, indem Sie zu target-> Build phase gehen und dann die Build-Phase "Pod-Ressourcen kopieren" entfernen.

6
roshi

Dieses Problem wurde behoben.

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

 Screenshot for above steps

4

Ich hatte kürzlich das gleiche Problem. Ich habe jeden möglichen Rat ausprobiert, nichts außer dieses Plugin hat für mich funktioniert:

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

Nach dem Bereinigen der aktuellen Cocoapods-Integration sind noch Pod-Datei, Pod-Datei.lock und der .xc-Arbeitsbereich zu löschen. Dann einfach nochmal installieren.

Ich hoffe, ich werde jemandem dabei helfen.

4
Chiara

Ich denke es hat einen Fehler hier.
Für mich lösche ich Pods Ordner und Podfile.lock und mache den pod install erneut, um das Problem zu lösen.
Diese Nachricht wird ignoriert .. :(

3
Johnny

Das hat meinen Tag gemacht!

  1. Löschen Sie die Podfile.lock-Datei in Ihrem Projektordner
  2. Löschen Sie den Pods-Ordner in Ihrem Projektordner
  3. Führen Sie pod install in Ihrem Projektordner aus
  4. Führen Sie ein "Clean" in Xcode aus
  5. Erstellen Sie Ihr Projekt neu
2
mstntsnr

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

  1. install gem installieren cocoapods-deintegrate
  2. install gem installieren cocoapods-clean
  3. goto pod deintegrate
  4. schote sauber
  5. pod installieren

Die Plugins werden für Ihr Projekt von den Cocoapods entfernt und neu installiert.

2
MD Aslam Ansari

Es war nicht sehr intuitiv. Ich bin zu den Basisprojekteinstellungen gegangen und habe dann unter Check Pods Manifest.lock die Pfade zu meinem pod.lock und pod.manifest hartcodiert, weil sie tatsächlich in verschiedenen Ordnern verblieben sind, so dass meine Pfade so aussehen:

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
2

In meinem Fall war dies ein Testziel, bei dem ich alle Pods aus meiner Pod-Datei entfernt habe (weil ich Pods hinzugefügt habe, die ich später nicht erkannt hatte). Keine der anderen Lösungen funktionierte für mich.

  1. Wechseln Sie in den Projekteinstellungen für das Ziel , Das Probleme verursacht, auf die Registerkarte Erstellungsphasen.

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

  3. Entfernen Sie libPods-YourTarget.a in "Link Binary With Libraries"

  4. Erweitern Sie in Ihren Projekteinstellungen auf der Registerkarte "Info" die Option "Konfigurationen" und setzen Sie die Konfiguration für das Ziel sowohl für Debug als auch für (Dies wird ein paar fehlende Warnungen beheben)

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

2
shim

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

Wenn etwas nicht funktioniert, stellen Sie zuerst sicher, dass Sie alle aus der Pods.xcconfig-Datei gesetzten Optionen nicht vollständig überschreiben in den Build-Einstellungen Ihres Projekts. So fügen Sie Optionen aus Ihrem Ersetzen Sie die Werteliste des Projekts mit $ (geerbt).

1
R00We

Ich hatte dieses Problem. 

Ich habe das Problem behoben, indem der Pod vollständig gelöscht und implementiert und erneut implementiert wurde. Stellen Sie sicher, dass Sie "Copy Pods Resources" und "Check Pods Manifest.lock" aus "Build Phases" für alle Ziele wie hier angegeben löschen: Wie kann CocoaPods aus einem Projekt entfernt werden?

1
dloomb

Damit ich diesen Fehler beseitigen kann, musste ich das Verzeichnis Pods und die Datei Podfile.lock löschen. 

1
BlackHatSamurai

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 (durch versehentliches Hinzufügen von * .xcconfig zu .gitignore) Hat derselbe Kompilierfehler aus demselben Grund, wird PODS_ROOT nicht gesetzt.

Wenn also nach dem Klonen des Repos das Projekt 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 Gibt xcconfig-Dateien an die Quellcodeverwaltung aus.

Ich habe nicht die Datei private .xcconfig angegeben, die die Build-Einstellungen mit der Standardkonfiguration von CocoaPods in die Quellcodeverwaltung einfügt.

1
Qiulang

wenn Sie nach dem Erstellen der Pod-Datei ein neues Ziel hinzugefügt haben, löschen Sie einfach die Pod-Datei, Pod-Datei.lock, den Pod-Ordner und den Arbeitsbereich

0
mohammad alabid
gem install xcodeproj

kann dir helfen.

Die Installation von pod schlägt mit dem Abbruch fehl - Neues Swift-Projekt .

0
Leo

Ich hatte das gleiche Problem. Nachdem ich meine letzten Schritte zurückverfolgt hatte, stellte ich fest, dass eine Zieldeklaration für ein neues Ziel hinzufügte, gefolgt von der Ausführung von pod install, die Ursache des Problems war:

 enter image description here

Das Zurücksetzen meines Zweigs und das Säubern meines Projekts funktionierten nicht, da Cocoapods mindestens eine Datei geändert hat, die nicht unter Quellcodeverwaltung ist. Ich weiß das, weil das Problem nicht mehr bestand, wenn ich den Remote-Zweig vor dem Hinzufügen des zusätzlichen Ziels auf ein Commit zurücksetzte und das Repo erneut klonierte.

0
Sheamus

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

0
xaphod

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!

0
Jidong Chen

Ich habe mehrere Ziele erstellt, bevor ich Pods verwendet habe. Später, als ich anfing, die anderen Ziele zu kompilieren, musste ich link_with mit der Liste der Ziele in meinem Podfile hinzufügen.

0

Nachdem ich Stunden damit verbracht hatte, fand ich die Lösung unter "Build Phases" Dann "Checks Pods Manifest.lock" Aktivieren Sie "Skript nur bei der Installation ausführen"

Dank mir später ;)  enter image description here

0

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

Wenn Sie immer noch dasselbe Problem haben, prüfen Sie, ob das Wetter unterhalb der Einstellungen in Build Settings -> User-Defined settings vorhanden ist oder nicht 

1 .PODS_ROOT 2 .PODS_PODFILE_DIR_PATH 

Wenn nicht vorhanden, dann fügen Sie es hinzu,

PODS_ROOT = ${SRCROOT}/Pods

PODS_PODFILE_DIR_PATH = ${SRCROOT}/

Es wird das Problem lösen, Lösung Link

0
Onkar

Nachdem ich das oben ausprobiert hatte, wurde mir klar, dass ich einen Fehler in pod install bekam.

[!] CocoaPods hat die Basiskonfiguration Ihres Projekts nicht festgelegt weil für Ihr Projekt bereits eine benutzerdefinierte Konfigurationsgruppe eingestellt ist.

Dies führte zu dem Fehler, da cocoapods die .xcconfig-Datei nicht zu meinem Projekt hinzufügte.

Um dieses Problem zu lösen, ging ich zur Registerkarte Info meines Projekts. Legen Sie für "Basierend auf Konfigurationsdatei" für alle Schemata und Ziele None fest. Dann pod install erneut ausführen

Weitere Informationen finden Sie unter diesem Link . Cocoapods Warnung - CocoaPods hat die Basiskonfiguration Ihres Projekts nicht festgelegt, da in Ihrem Projekt bereits eine benutzerdefinierte Konfigurationsgruppe festgelegt ist

0
Matt Hudson