Komendy Cocoapods kończą się niepowodzeniem z powodu „Brak takiego pliku lub katalogu @ dir_initialize - /Users/<username>/.cocoapods/repos (Errno :: ENOENT)”

208

Czy ktoś może mi pomóc rozwiązać błąd w poniższym śladzie stosu? Dzieje się tak, gdy uruchamiam dowolne podpolecenie. Odinstalowałem i ponownie zainstalowałem klejnot bez powodzenia.

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

AKTUALIZACJA : Naprawiono za pomocą sugestii @ KeithSmiley.

David
źródło
8
Czy możesz spróbować usunąć za ~/.cocoapodspomocą rm -rf ~/.cocoapodsi uruchomić pod setupponownie.
Keith Smiley
1
@KeithSmiley Próbowałem tego i nadal otrzymuję ten sam ślad stosu z góry podczas uruchamiania dowolnego podpolecenia, w tym pod setup.
David
4
Więc zamiast biegać pod setupmożna ręcznie sklonować specyfikacje repo do ~/.cocoapods/repos/master. Powinieneś być w stanie pominąć ten krok.
Keith Smiley
Używałem „git rm -rf Pods”, ale git tak naprawdę nie usuwa katalogu. Dla tych, którzy utknęli z tym, wykonaj „rm -rf Pods”, a następnie „zainstaluj pod”.
Borzh
Dlaczego nie wybierzesz odpowiedzi z ponad 440 głosami pozytywnymi?
Dirty Henry

Odpowiedzi:

472

Jeśli komunikat mówi, że brakuje Ci biblioteki lib:

Mam ten sam problem i został on naprawiony po uruchomieniu, pod setupa następniepod install

Jeśli brakującym katalogiem jest katalog ruby, możesz:

Prawdopodobnie ostatnio zaktualizowałeś swój OSX lub rubinowy klejnot, a jego ŚCIEŻKA nadal łączy się ze starą wersją ruby. Napraw za pomocą:

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

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

Jak powiedział @rendel

Davinder
źródło
136
Zastanawiasz się, dlaczego nie wspomniano o tym w przewodniku wprowadzającym CocoaPods
Kevin Reilly,
2
To sprawiło, że mój wieczór! Dziękuję Ci!
jodła
4
+ 1 za wzmiankę o tym w przewodniku dla początkujących
csotiriou,
Jego naprawiono błąd, jesteśmy po prostu czeka na uzyskanie kolejnej wersji out
Orta
48

Cocoapods miał problem polegający na tym, że ich repozytorium github uległo uszkodzeniu, co zmusza użytkowników do ręcznego czyszczenia lokalnych repozytoriów.

Cytat z postu na blogu Cocoapods szczegółowo opisujący błąd :

Niestety napotkaliśmy błąd w libgit2 i będziemy musieli wymusić wypchnięcie do repozytorium Specs. (Znany również jako repozytorium specyfikacji „master”).

Co to dla ciebie znaczy? Zasadniczo twoja konfiguracja CocoaPods się zepsuje. Będziesz musiał ręcznie usunąć wszelkie lokalne kopie repozytorium Specs i ponownie sklonować nową wersję repozytorium Specs. Możesz to zrobić za pomocą następujących poleceń:

Rozwiązanie:

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

Wystarczy uruchomić powyższe polecenia, aby usunąć uszkodzone repozytorium i ponownie zainicjować za pomocą czystego repozytorium. Aby uzyskać więcej informacji, zobacz wspomniany wyżej blog .

Mam nadzieję że to pomoże!

radiowizualny
źródło
1
@ user3783005, jeśli pojawia się ten błąd, oznacza to, że cocoapods albo nie jest zainstalowany, albo wykonywalnych „zasobników” nie można znaleźć nigdzie w PATHzmiennej. użyj, echo $PATHaby wydrukować pełną ścieżkę, aby rozpocząć proces rozwiązywania problemów.
radiowizualny
22

Nic mi nie działało, musiałem sudo gem install cocoapodsi to działało magicznie.

Gal
źródło
Musiałem to zrobić po zakończeniu migracji za pośrednictwem Asystenta migracji.
Jojo Narte,
21

Miałem podobny problem. Usunąłem folder Pods i ponownie uruchom instalację pod. Problem rozwiązany.

Leandro
źródło
Dzięki za to ! Zaoszczędziłeś mi cennych czasów :)
CyberDandy
8

Próbowałem mnóstwo rzeczy, a jedyną poprawką dla mnie było mówienie

brew install cocoapods

i wtedy

brew link --overwrite cocoapods

Teraz wydaje się, że działa dobrze.

Ethan Parker
źródło
1
Działa to dla mnie po tym, jak w jakiś sposób popsułem moją instalację. Dzięki!
Aleks Beer
7

Czasami zdarza się, gdy używasz niewłaściwego znaku apostrofu w Podfile lub Podspec

wprowadź opis zdjęcia tutaj

Te apostrofy są domyślne w przypadku używania standardowej aplikacji TextEdit w systemie OS X. Wolę Sublime Text, aby uniknąć takich błędów

Tim
źródło
1
Należy pamiętać, że podczas korzystania z techniki „prywatnych specyfikacji” cocoapods mogą kopiować lokalny prywatny Podspec do katalogu o nazwie „./Your_Private_Subspec_Name/Pods/Local Podspecs”. Po naprawieniu oryginalnego podspec lepiej usuń te katalogi „Lokalne podspec”, ponieważ cocoapods mogą nie aktualizować kopii poprawnie
Tim
3

SZYBKIE ROZWIĄZANIE

Dobrym sposobem na rozwiązanie tego problemu będzie do określonego folderu i sprawdzić, czy plik, który jest brakującym (czasami jest tam, ale w rzadkiej formie) i usunąć plik. Usuń takżePodfile.lock plik

Następnie wykonaj pod install i wszystko powinno być w porządku :) nie musisz usuwać wszystkich repozytoriów pobranych przez Cocoapods.

Gotowe!

Gabriel Goncalves
źródło
1
TO. To jest poprawka. Ponownie zainstalowałem cocoapody, połączone, wszelkiego rodzaju rzeczy i nic nie działało, dopóki nie wszedłem do Findera i nie usunąłem plików wewnątrz szalonego zasobnika. Nawet moja własna odpowiedź z 2018 roku Oo
Ethan Parker
1

Mam podobny błąd. Próbowałem „konfiguracji pod”, ale nie działałem. Następnie tworzę fałszywy plik, którego mi brakowało, a następnie działa „aktualizacja pod”.

wgr
źródło
1

przejdź do katalogu projektu i wpisz polecenie export PATH = $ PATH: $ HOME / Software / ruby ​​/ bin

Phani Sai
źródło
0

Mam ten sam problem, ale musiałem usunąć cały katalog ./Pods/ w moim projekcie, aby móc kontynuować (katalog zawierał dowiązania symboliczne do plików z innej gałęzi, które nie zostały usunięte na przełączniku gałęzi)

igraczech
źródło
0

Wiem, że to starszy post, ale napotkałem ten problem podczas przenoszenia lub usuwania pliku .h w lokalnym module. Okazuje się, że był to problem z wersją 0.38 i rozwiązaniem była aktualizacja.

Zobacz dyskusję na ten temat w Github tutaj .

doctorBroctor
źródło