Команди 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ви можете вручну клонувати дані репо в ~/.cocoapods/repos/master. Тоді ви повинні мати можливість пропустити цей крок.
Кіт Смайлі

Я використовував 'git rm -rf Pods', але git фактично не видаляє каталог. Для тих, хто зациклювався на цьому, зробіть 'rm -rf Pods', а потім 'pod install'.
Борж

Чому б не вибрати відповідь за допомогою оновлень 440+?
Брудний Генрі

Відповіді:


472

Якщо в повідомленні сказано, що у вас немає ліфта:

У мене така ж проблема, і вона була виправлена ​​після запуску, pod setupа потімpod install

Якщо каталог, що відсутній, є рубіновим директором, ви можете зробити:

Ви, ймовірно, нещодавно оновили дорогоцінний камінь для ОСX або ruby, і його PATH все ще посилається на стару версію рубіну. Виправити за допомогою:

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

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

Як сказав @rendel


136
Цікаво, чому це не згадується в керівництві щодо початку роботи CocoaPods
Кевін Рейлі

2
Це зробив мій вечір! Дякую!
ялина

4
+ 1 для згадування про це в керівництві щодо початку роботи
csotiriou

Його виправлена ​​помилка, ми просто чекаємо виходу наступної версії
орта

48

У какаодів виникла проблема коли їх сховище github було пошкоджене, і це змушує користувачів очищати місцеві репо-служби вручну.

Цитата з публікації в блозі Cocoapods з деталізацією помилки :

На жаль, ми зустріли помилку в libgit2, і нам доведеться змусити натиснути у сховище Specs. (Також відомий як "master" специфікація репо).

Що це означає для вас? Ну, в основному ваша настройка CocoaPods буде порушена. Вам доведеться видалити будь-які локальні копії сховища Specs і повторно клонувати нову версію сховища Specs. Це можна зробити за допомогою наступних команд:

Рішення:

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

Просте виконання команд, викладених вище, видалить пошкоджене репо і повторно ініціалізується за допомогою чистого репо. Дивіться згаданий вище блог .

Сподіваюсь, це допомагає!


1
@ user3783005, якщо ви отримуєте цю помилку, то це означає, що cocoapods або не встановлено, або виконувані "стручки" не можна знайти ніде у вашій PATHзмінній. використовуйте echo $PATHдля друку повного шляху, щоб почати процес усунення несправностей.
радіовізуальний

22

Ніщо не працювало для мене, я повинен був sudo gem install cocoapodsі це робило магію.


Мені довелося це зробити після завершення міграції через міграційного помічника.
Джоджо Нарте

21

У мене було подібне питання. Я видалив папку Pods і запустив установку pod знову. Проблема вирішена.


Дякую за це! Ти врятував мені кілька дорогоцінних часів :)
CyberDandy

8

Спробував тонну речей, і єдиним виправленням для мене було те, що говорив

brew install cocoapods

і потім

brew link --overwrite cocoapods

Зараз, здається, це працює нормально.


1
Це спрацювало для мене після того, як я якось зіпсував свою установку. Дякую!
Aleks Beer

7

Іноді це трапляється при використанні неправильного символу апострофа в підфілі або в підспекві

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

Ці апострофи за замовчуванням використовуються в стандартному додатку TextEdit в ОС X. Я вважаю за краще Sublime Text, щоб уникнути таких помилок


1
Майте на увазі, що, використовуючи техніку "приватних специфікацій", cocoapods можуть скопіювати ваш локальний приватний Podspec в каталог під назвою "./Your_Private_Subspec_Name/Pods/Local Podspecs". Отже, після виправлення оригінального підспеку вам краще видалити ці каталоги "Місцеві підспеци", тому що cocoapods можуть не правильно оновити копії
Тим

3

Швидке рішення

Хороший спосіб вирішити цю проблему збирається в зазначену папку і перевірки для файлу , який відсутній (іноді вона є , але в рідкому форматі) і видалити файл. Видаліть такожPodfile.lock файл

Тоді виконуйте pod installі все повинно бути добре :) вам не потрібно видаляти всі репости, які завантажили Cocoapods.

Готово!


1
ЦЕЙ. Це виправлення. Перевстановили какаоди, зв'язали, всілякі речі і нічого не працювали, поки я не зайшов у Finder і не видалив файли всередині стручка, який був злий. Навіть моя власна відповідь з 2018 року Oo
Ethan Parker


1

Я отримав подібну помилку. І я спробував "налаштування стручка", не працюючи. Потім я створюю підроблений файл, який мені було відсутнє, а потім працює "оновлення pod".


1

перейдіть до каталогу проектів і введіть команду експорту PATH = $ PATH: $ HOME / Програмне забезпечення / ruby ​​/ bin


0

У мене виникла та ж проблема, але мені довелося видалити цілий каталог ./Pods/ в моєму проекті, щоб мати можливість продовжувати (каталог містив посилання на файли з іншої гілки, які не були видалені при перемиканні гілки)


0

Я знаю, що це старша публікація, але я зіткнувся з цією проблемою під час переміщення або видалення .h-файлу в локальному стручку. Виявляється, це проблема з v0.38, і рішення було оновити.

Дивіться дискусію про проблему Github тут .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.