Команды Cocoapods не выполняются из-за «Нет такого файла или каталога @ dir_initialize - /Users/<username>/.cocoapods/repos (Errno :: ENOENT)»

208

Может кто-нибудь помочь мне устранить ошибку в трассировке стека ниже? Это происходит, когда я запускаю любую podкоманду. Я удалил и переустановил драгоценный камень без удачи.

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

ОБНОВЛЕНИЕ : Исправлено с предложением @ KeithSmiley.

Дэвид
источник
8
Можете ли вы попробовать удалить ~/.cocoapodsс rm -rf ~/.cocoapodsи запустить pod setupснова.
Кит Смайли,
1
@KeithSmiley Я попробовал это и все еще получаю ту же трассировку стека сверху при запуске любой podкоманды, в том числе pod setup.
Дэвид
4
Что ж, вместо запуска pod setupвы можете вручную клонировать репозиторий specs в ~/.cocoapods/repos/master. Тогда вы сможете пропустить этот шаг.
Кит Смайли,
Я использовал 'git rm -rf Pods', но на самом деле git не удаляет каталог. Для тех, кто застрял с этим, выполните «rm -rf Pods», а затем «pod install».
Борж
Почему бы вам не выбрать ответ с 440+ голосов?
Грязный Генри

Ответы:

473

Если в сообщении говорится, что вы пропустили библиотеку:

Я получил ту же проблему, и она была исправлена ​​после запуска, pod setupа затемpod install

Если отсутствующим каталогом является ruby ​​dir, вы можете сделать:

Возможно, вы недавно обновили свой osx или ruby ​​gem, и его PATH все еще ссылается на старую версию ruby. Исправить с помощью:

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

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

Как сказал @rendel

Davinder
источник
136
Интересно, почему это не упомянуто в руководстве по началу работы CocoaPods
Кевин Рейли
2
Это сделал мой вечер! Спасибо!
ель
4
+1 за упоминание в руководстве по
началу работы
Это исправленная ошибка, мы просто ждем выхода следующей версии
orta
48

У Cocoapods была проблема, когда их репозиторий github был поврежден, и это вынуждает пользователей очищать свои локальные репозитории вручную.

Цитата из сообщения в блоге Cocoapods с подробным описанием ошибки :

К сожалению, мы столкнулись с ошибкой в ​​libgit2, и нам придется принудительно вставлять репозиторий Specs. (Также известный как «мастер» репо.)

Что это значит для тебя? Ну, в основном ваша установка CocoaPods будет сломана. Вам придется вручную удалить все локальные копии репозитория Specs и повторно клонировать новую версию репозитория Specs. Вы можете сделать это с помощью следующих команд:

Решение:

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

Простое выполнение приведенных выше команд приведет к удалению поврежденного репо и повторной инициализации с использованием чистого репо. См. Блог пост, упомянутый выше для получения дополнительной информации.

Надеюсь это поможет!

radiovisual
источник
1
@ user3783005, если вы получаете эту ошибку, это означает, что cocoapods либо не установлен, либо исполняемые «pods» не найдены нигде в вашей PATHпеременной. используйте, echo $PATHчтобы распечатать полный путь, чтобы начать процесс устранения неполадок.
радиовизуальное
22

У меня ничего sudo gem install cocoapodsне получалось , я должен был, и это творило магию.

гал
источник
Я должен был сделать это после завершения миграции с помощью Migration Assistant.
Jojo Narte
21

У меня была похожая проблема. Я удалил папку Pods и снова запустил установку pod. Задача решена.

Leandro
источник
Спасибо за это ! Вы сэкономили мне драгоценные времена :)
CyberDandy
8

Попробовал кучу вещей, и единственное исправление для меня было сказать

brew install cocoapods

а потом

brew link --overwrite cocoapods

Теперь, кажется, работает нормально.

Итан Паркер
источник
1
Это сработало для меня после того, как я все испортил. Спасибо!
Алекс Пив
7

Иногда это происходит при использовании неправильного символа апострофа в Podfile или в Podspec

введите описание изображения здесь

Эти апострофы используются по умолчанию при использовании стандартного приложения TextEdit в OS X. Я предпочитаю Sublime Text, чтобы избежать таких ошибок

Тим
источник
1
Имейте в виду, что при использовании техники «private specs», cocoapods может скопировать ваш локальный частный Podspec в каталог с именем «./Your_Private_Subspec_Name/Pods/Local Podspecs». Итак, после исправления исходного подспека вам лучше удалить эти каталоги «Local Podspecs», потому что cocoapods может не обновлять копии правильно
Тим
3

БЫСТРОЕ РЕШЕНИЕ

Хороший способ решить эту проблему собирается в указанную папку и проверки для файла , который отсутствует (иногда она есть , но в редком формате) и удалить файл. Удалить также Podfile.lockфайл

Затем выполните pod installвсе и все будет в порядке :) Вам не нужно удалять все репозитории, которые загружены Cocoapods.

Готово!

Габриэль Гонсалвес
источник
1
ЭТОТ. Это исправление. Переустановил cocoapods, связал, все виды вещей и ничего не работало, пока я не вошел в Finder и не удалил файлы внутри модуля, который был безумен. Даже мой собственный ответ от 2018 г.
Итан Паркер
1

Я получил похожую ошибку. И я попробовал "pod setup", не работает. Затем я создаю поддельный файл, который, как мне сказали, отсутствует, и затем «pod update» работает.

WGR
источник
1

перейдите в каталог проекта и введите команду export PATH = $ PATH: $ HOME / Software / ruby ​​/ bin

Фани Саи
источник
0

У меня возникла та же проблема, но мне пришлось удалить весь каталог ./Pods/ в моем проекте, чтобы продолжить (каталог содержал символические ссылки на файлы из другой ветви, которые не были удалены на переключателе ветви)

igraczech
источник
0

Я знаю, что это старый пост, но я столкнулся с этой проблемой при перемещении или удалении файла .h в локальном модуле. Оказывается, это была проблема с v0.38, и решение было обновить.

Смотрите обсуждение проблемы Github здесь .

doctorBroctor
источник