Cocoapods命令失败,因为“没有这样的文件或目录@ dir_initialize-/ Users / <用户名> /。cocoapods / repos(Errno :: ENOENT)”


208

谁能帮助我解决以下堆栈跟踪中的错误?当我运行任何pod命令时,都会发生这种情况。我已经卸载并重新安装了gem,但是没有运气。

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
你可以尝试删除~/.cocoapodsrm -rf ~/.cocoapods运行pod setup一次。
Keith Smiley 2014年

1
@KeithSmiley我尝试了这一点,并且在运行任何pod命令(包括)时仍从上方获得相同的stacktrace pod setup
大卫

4
好吧,pod setup除了运行外,您还可以将规格仓库手动克隆到中~/.cocoapods/repos/master。然后,您应该可以跳过此步骤。
Keith Smiley 2014年

我使用的是'git rm -rf Pods',但是git实际上并未删除目录。对于那些受此困扰的人,请先执行“ rm -rf Pods”,然后再执行“ pod install”。
Borzh

您为什么不选择有440多个投票的答案?
肮脏的亨利

Answers:


472

如果消息表明您缺少库:

我遇到了同样的问题,运行后已修复pod setup,然后pod install

如果缺少的目录是ruby目录,则可以执行以下操作:

您可能最近已更新了osx或ruby gem,其PATH仍链接到旧的ruby版本。修正:

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

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

正如@rendel所说


136
想知道为什么在CocoaPods入门指南中没有提到这一点
Kevin Reilly

2
这是我的夜晚!谢谢!
冷杉

4
+ 1在入门指南中提及它
csotiriou 2015年

它是一个已修复的错误,我们正在等待下一个版本的发布
Orta 2015年

48

Cocoapods的一个问题是其github存储库已损坏,这迫使用户手动清理其本地存储库。

Cocoapods博客文章中一段引述了该错误的报价:

不幸的是,我们在libgit2中遇到了一个错误,我们将不得不强制将其推入Specs存储库。(也称为“主”规格存储库。)

这对您意味着什么?好吧,基本上您的CocoaPods设置将会中断。您将必须手动删除Specs存储库的任何本地副本,然后重新克隆Specs存储库的新版本。您可以使用以下命令执行此操作:

解决方案:

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

只需运行以上命令,即可删除损坏的存储库并使用干净的存储库重新初始化。有关更多信息,请参见上面提到的博客文章

希望这可以帮助!


1
@ user3783005,如果遇到该错误,则意味着未安装cocoapods,或者在PATH变量的任何位置都找不到可执行文件“ pods” 。用于echo $PATH打印出完整的路径以开始故障排除过程。
2015年

22

没有任何事情对我有用,我不得不sudo gem install cocoapods这样做了。


通过迁移助手完成迁移后,我必须这样做。
Jojo Narte

21

我有类似的问题。我删除了Pods文件夹,然后再次运行pod install。问题解决了。


谢谢你!您为我节省了一些宝贵的时间:)
Cyber​​Dandy

8

尝试了很多东西,对我来说唯一的解决办法是说

brew install cocoapods

然后

brew link --overwrite cocoapods

现在看来工作正常。


1
在以某种方式弄乱了安装之后,这对我有用。谢谢!
Aleks Beer

7

在Podfile或Podspec中使用错误的撇号字符时,有时会发生这种情况

在此处输入图片说明

在OS X上使用标准TextEdit应用时,这些撇号是默认设置。我更喜欢Sublime Text以避免此类错误


1
请记住,当使用“专用规格”技术时,cocoapods可能会将您的本地专用Podspec复制到名为“ ./Your_Private_Subspec_Name/Pods/Local Podspecs”的目录中。因此,在修复原始podspec之后,最好删除那些“ Local Podspecs”目录,因为cocoapods可能无法正确更新副本
Tim

3

快速解决方案

解决此问题的一种好方法是转到指定的文件夹,并检查丢失的文件(有时它在那里,但格式很少)并删除该文件。也删除Podfile.lock文件

然后执行pod install,一切应该都很好:)您不需要删除Cocoapods下载的所有存储库。

做完了!


1
这个。这就是解决方法。重新安装了cocoapods,链接了各种东西,但在我进入Finder并删除了发疯的pod中的文件之前,什么都没起作用。甚至我自己从2018年Oo的回答
Ethan Parker


1

我也遇到类似的错误。我尝试了“ pod设置”,但无法正常工作。然后,我创建了一个伪造的文件,该文件被告知丢失,然后“吊舱更新”成功了。


1

转到项目目录并键入命令export PATH = $ PATH:$ HOME / Software / ruby​​ / bin


0

我遇到了同样的问题,但是我必须删除项目中的整个./Pods/目录才能继续(该目录包含指向其他分支的文件的符号链接,这些链接在分支交换机上未删除)


0

我知道这是一篇较旧的文章,但是在移动或删除本地窗格中的.h文件时遇到了这个问题。原来这是v0.38的问题,解决方案是要更新。

这里查看有关Github问题的讨论。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.