Cocoapods-Befehle schlagen fehl, weil "Keine solche Datei oder kein solches Verzeichnis @ dir_initialize - /Users/<username>/.cocoapods/repos (Errno :: ENOENT)"

208

Kann mir jemand helfen, den Fehler in der Stapelverfolgung unten zu beheben? Dies tritt auf, wenn ich einen podBefehl ausführe . Ich habe den Edelstein ohne Glück deinstalliert und neu installiert.

00:44:05-David~/dev/farecast-app (master)$ pod setup
Setting up CocoaPods master repo
/usr/local/rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/pathname.rb:422:in `open': No such file or directory @ dir_initialize - /Users/David/.cocoapods/repos (Errno::ENOENT)
    from /usr/local/rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/pathname.rb:422:in `foreach'
    from /usr/local/rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/pathname.rb:422:in `children'
    from /usr/local/rvm/gems/ruby-2.1.0/gems/cocoapods-0.34.4/lib/cocoapods/sources_manager.rb:63:in `all'
    from /usr/local/rvm/gems/ruby-2.1.0/gems/cocoapods-0.34.4/lib/cocoapods/user_interface/error_report.rb:127:in `repo_information'
    from /usr/local/rvm/gems/ruby-2.1.0/gems/cocoapods-0.34.4/lib/cocoapods/user_interface/error_report.rb:34:in `report'
    from /usr/local/rvm/gems/ruby-2.1.0/gems/cocoapods-0.34.4/lib/cocoapods/command.rb:63:in `report_error'
    from /usr/local/rvm/gems/ruby-2.1.0@global/gems/claide-0.7.0/lib/claide/command.rb:300:in `handle_exception'
    from /usr/local/rvm/gems/ruby-2.1.0@global/gems/claide-0.7.0/lib/claide/command.rb:274:in `rescue in run'
    from /usr/local/rvm/gems/ruby-2.1.0@global/gems/claide-0.7.0/lib/claide/command.rb:264:in `run'
    from /usr/local/rvm/gems/ruby-2.1.0/gems/cocoapods-0.34.4/lib/cocoapods/command.rb:50:in `run'
    from /usr/local/rvm/gems/ruby-2.1.0/gems/cocoapods-0.34.4/bin/pod:33:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-2.1.0/bin/pod:23:in `load'
    from /usr/local/rvm/gems/ruby-2.1.0/bin/pod:23:in `<main>'
    from /usr/local/rvm/gems/ruby-2.1.0/bin/ruby_executable_hooks:15:in `eval'
    from /usr/local/rvm/gems/ruby-2.1.0/bin/ruby_executable_hooks:15:in `<main>'

UPDATE : Mit dem Vorschlag von @ KeithSmiley behoben.

David
quelle
8
Können Sie versuchen, ~/.cocoapodsmit zu entfernen rm -rf ~/.cocoapodsund pod setuperneut auszuführen?
Keith Smiley
1
@KeithSmiley Ich habe das versucht und bekomme immer noch den gleichen Stacktrace von oben, wenn ich einen podBefehl ausführe , einschließlich pod setup.
David
4
Nun , anstatt laufen pod setupkönnen Sie manuell klonen die specs Repo in ~/.cocoapods/repos/master. Dann sollten Sie diesen Schritt überspringen können.
Keith Smiley
Ich habe 'git rm -rf Pods' verwendet, aber git entfernt das Verzeichnis nicht wirklich. Für diejenigen, die daran hängen bleiben, machen Sie 'rm -rf Pods' und dann 'pod install'.
Borzh
Warum wählst du die Antwort nicht mit mehr als 440 Upvotes aus?
Dirty Henry

Antworten:

472

Wenn die Nachricht besagt, dass Ihnen eine Bibliothek fehlt:

Ich habe das gleiche Problem und es wurde nach dem Laufen pod setupund dann behobenpod install

Wenn das fehlende Verzeichnis das Ruby-Verzeichnis ist, können Sie Folgendes tun:

Sie haben wahrscheinlich kürzlich Ihr Osx- oder Ruby-Juwel aktualisiert und sein PFAD ist immer noch mit der alten Ruby-Version verknüpft. Fix mit:

sudo gem install -n /usr/local/bin ruby

sudo gem install -n /usr/local/bin cocoapods

Wie von @rendel gesagt

Davinder
quelle
136
Ich frage mich, warum dies nicht in der Anleitung für die ersten Schritte der CocoaPods erwähnt wird
Kevin Reilly,
2
Es ist mein Abend gemacht! Danke dir!
Tanne
4
+ 1 für die Erwähnung in der Anleitung für die ersten
Schritte
Es ist ein Fehler behoben, wir warten nur auf die nächste Version raus
orta
48

Cocoapods hatten ein Problem, bei dem ihr Github-Repository beschädigt wurde, und dies zwingt Benutzer dazu, ihr lokales Repo manuell zu bereinigen.

Ein Zitat aus dem Cocoapods-Blogbeitrag, in dem der Fehler detailliert beschrieben wird :

Leider ist in libgit2 ein Fehler aufgetreten, und wir müssen einen Push in das Specs-Repository erzwingen. (Auch als "Master" -Spezifikations-Repo bekannt.)

Was bedeutet das für dich? Nun, im Grunde wird Ihr CocoaPods-Setup kaputt gehen. Sie müssen alle lokalen Kopien des Specs-Repositorys manuell löschen und die neue Version des Specs-Repositorys erneut klonen. Sie können dies mit den folgenden Befehlen tun:

Die Lösung:

$ sudo rm -fr ~/.cocoapods/repos/master
$ pod setup

Durch einfaches Ausführen der obigen Befehle wird das beschädigte Repo entfernt und mit einem sauberen Repo neu initialisiert. Siehe die Blogpost erwähnte oben für weitere Informationen.

Hoffe das hilft!

radiovisuell
quelle
1
@ user3783005 Wenn Sie diesen Fehler erhalten, bedeutet dies, dass Cocoapods entweder nicht installiert sind oder die ausführbaren 'Pods' nirgendwo in Ihrer PATHVariablen gefunden werden können . Verwenden Sie echo $PATHdiese Option, um Ihren vollständigen Pfad auszudrucken und den Fehlerbehebungsprozess zu starten.
Radiovisuelle
22

Nichts hat bei mir funktioniert, ich musste sudo gem install cocoapodsund das hat die Magie bewirkt.

Gal
quelle
Ich musste dies tun, nachdem ich eine Migration über den Migrationsassistenten abgeschlossen hatte.
Jojo Narte
21

Ich hatte ein ähnliches Problem. Ich habe den Pods-Ordner gelöscht und die Pod-Installation erneut ausgeführt. Problem gelöst.

Leandro
quelle
Danke dafür ! Du hast mir einige wertvolle Zeiten
erspart
8

Versuchte eine Menge Sachen und die einzige Lösung für mich war zu sagen

brew install cocoapods

und dann

brew link --overwrite cocoapods

Jetzt scheint es gut zu funktionieren.

Ethan Parker
quelle
1
Dies funktionierte für mich, nachdem ich meine Installation irgendwie durcheinander gebracht hatte. Vielen Dank!
Aleks Beer
7

Es tritt manchmal auf, wenn ein falsches Apostrophzeichen in einer Poddatei oder in einer Podspezifikation verwendet wird

Geben Sie hier die Bildbeschreibung ein

Diese Apostrophe sind Standard, wenn Sie die Standard-TextEdit-App unter OS X verwenden. Ich bevorzuge Sublime Text, um solche Fehler zu vermeiden

Tim
quelle
1
Beachten Sie, dass Cocoapods bei Verwendung der Technik "Private Specs" Ihre lokale private Podspec möglicherweise in ein Verzeichnis mit dem Namen "./Ihr_Private_Subspec_Name/Pods/Local Podspecs" kopieren. Nachdem Sie die ursprüngliche Podspec repariert haben, sollten Sie diese "Local Podspecs" -Verzeichnisse besser löschen, da Cocoapods die Kopien möglicherweise nicht korrekt aktualisieren
Tim
3

SCHNELLE LÖSUNG

Eine gute Möglichkeit , dieses Problem zu beheben, besteht darin, in den angegebenen Ordner nach der fehlenden Datei zu suchen (manchmal vorhanden, aber in einem seltenen Format) und die Datei zu löschen . Entfernen Sie auch die Podfile.lockDatei

Dann ausführen pod installund alles sollte in Ordnung sein :) Sie müssen nicht alle Repos entfernen, die Cocoapods heruntergeladen haben.

Getan!

Gabriel Goncalves
quelle
1
DIES. Dies ist die Lösung. Neu installierte Cocoapods, verknüpfte, alle möglichen Dinge und nichts funktionierte, bis ich in den Finder ging und die Dateien in der Kapsel löschte, die verrückt waren. Sogar meine eigene Antwort von 2018 Oo
Ethan Parker
1

Ich habe einen ähnlichen Fehler erhalten. Und ich habe versucht "Pod Setup", nicht funktioniert. Dann erstelle ich eine gefälschte Datei, die mir als vermisst gemeldet wurde, und dann funktioniert "Pod Update".

wgr
quelle
1

Gehen Sie zum Projektverzeichnis und geben Sie den Befehl export ein. PATH = $ PATH: $ HOME / Software / ruby ​​/ bin

Phani Sai
quelle
0

Ich hatte das gleiche Problem, musste aber das gesamte Verzeichnis ./Pods/ in meinem Projekt löschen, um fortfahren zu können (das Verzeichnis enthielt Symlinks zu Dateien aus anderen Zweigen, die beim Verzweigungswechsel nicht gelöscht wurden).

igraczech
quelle
0

Ich weiß, dass dies ein älterer Beitrag ist, aber ich bin auf dieses Problem gestoßen, als ich eine .h-Datei in einem lokalen Pod verschoben oder gelöscht habe. Es stellte sich heraus, dass dies ein Problem mit v0.38 war und die Lösung darin bestand, zu aktualisieren.

Lesen Sie hier die Diskussion zum Thema Github .

doctorBroctor
quelle