Os comandos do Cocoapods falham devido a "Não existe esse arquivo ou diretório @ dir_initialize - /Users/<username>/.cocoapods/repos (Errno :: ENOENT)"

208

Alguém pode me ajudar a resolver o erro no rastreamento de pilha abaixo? Isso ocorre quando eu executo qualquer podcomando. Desinstalei e reinstalei a gema sem sorte.

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 : Corrigido com a sugestão de @ KeithSmiley.

David
fonte
8
Você pode tentar remover ~/.cocoapodscom rm -rf ~/.cocoapodse funcionando pod setupnovamente.
Keith Smiley
1
@KeithSmiley Eu tentei isso e ainda recebo o mesmo stacktrace de cima ao executar qualquer podcomando, inclusive pod setup.
David
4
Bem em vez de correr pod setupvocê pode clonar manualmente as especificações repo em ~/.cocoapods/repos/master. Então você poderá pular esta etapa.
Keith Smiley
Eu estava usando 'git rm -rf Pods', mas o git não remove o diretório. Para aqueles que se incomodam com isso, faça 'rm -rf Pods' e depois 'pod install'.
Borzh 16/09/2015
Por que você não seleciona a resposta com mais de 440 votos?
Dirty Henry

Respostas:

472

Se a mensagem indicar que está faltando uma lib:

Eu tive o mesmo problema e foi corrigido após a execução pod setupe depoispod install

Se o diretório ausente for o diretório ruby, você poderá:

Você provavelmente atualizou seu osx ou ruby ​​gem recentemente e o PATH ainda está vinculado à versão antiga do ruby. Corrigir com:

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

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

Como dito por @rendel

Davinder
fonte
136
Querendo saber por que isso não é mencionado nos CocoaPods' guia de iniciação
Kevin Reilly
2
Fez a minha noite! Obrigado!
fir
4
+ 1 por mencioná-lo no guia de primeiros
passos
É um bug corrigido, estamos apenas aguardando a liberação da próxima versão
orta 17/01
48

O Cocoapods teve um problema em que o repositório do github havia sido corrompido e isso força os usuários a limpar manualmente o repositório local.

Uma citação da postagem do blog Cocoapods detalhando o erro :

Infelizmente, encontramos um bug no libgit2 e precisaremos forçar o envio para o repositório Specs. (Também conhecido como repositório de especificações 'mestre').

O que isso significa para você? Bem, basicamente a sua configuração do CocoaPods será interrompida. Você precisará excluir manualmente quaisquer cópias locais do repositório Specs e clonar novamente a nova versão do repositório Specs. Você pode fazer isso com os seguintes comandos:

A solução:

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

Basta executar os comandos acima para remover o repositório corrompido e reinicializar usando um repositório limpo. Veja o post do blog mencionado acima para mais informações.

Espero que isto ajude!

radiovisual
fonte
1
@ user3783005, se você estiver recebendo esse erro, significa que os cocoapods não estão instalados ou os 'pods' executáveis ​​não podem ser encontrados em nenhum lugar da sua PATHvariável. use echo $PATHpara imprimir seu caminho completo e iniciar o processo de solução de problemas.
radiovisual
22

Nada funcionou para mim, eu tive que sudo gem install cocoapodse isso fez a mágica.

Garota
fonte
Eu tive que fazer isso depois de concluir uma migração via Assistente de Migração.
Jojo Narte
21

Eu tive um problema semelhante. Eu apaguei a pasta Pods e executei a instalação do pod novamente. Problema resolvido.

Leandro
fonte
Obrigado por isso! Você me salvou algumas vezes preciosos :)
CyberDandy
8

Tentei uma tonelada de coisas e a única solução para mim era dizer

brew install cocoapods

e depois

brew link --overwrite cocoapods

Agora parece estar funcionando bem.

Ethan Parker
fonte
1
Isso funcionou para mim depois que eu estraguei minha instalação de alguma forma. Obrigado!
28418 Aleks Beer
7

Às vezes, ocorre ao usar um caractere de apóstrofo errado em um Podfile ou em um Podspec

insira a descrição da imagem aqui

Esses apóstrofos são padrão ao usar o aplicativo TextEdit padrão no OS X. Prefiro Texto Sublime para evitar esses erros

Tim
fonte
1
Lembre-se de que, ao usar a técnica 'especificações particulares', os cocoapods podem copiar seu Podspec privado local em um diretório chamado "./Seu_Private_Subspec_Name/Pods/Podsecs locais". Assim, após a fixação do podspec originais é melhor excluir esses diretórios "local Podspecs", porque CocoaPods não pode atualizar as cópias corretamente
Tim
3

SOLUÇÃO RÁPIDA

Uma boa maneira de resolver esse problema é ir para a pasta especificada e verificar o arquivo que está faltando (às vezes, mas existe em um formato raro) e excluir o arquivo. Remover também o Podfile.lockarquivo

Em seguida, execute pod installe tudo ficará bem :) você não precisa remover todos os repositórios que o Cocoapods baixou.

Feito!

Gabriel Goncalves
fonte
1
ISTO. Essa é a correção. Reinstalei os cocoapods, vinculados, todos os tipos de coisas e nada funcionou até eu entrar no Finder e excluir os arquivos dentro do pod que estavam loucos. Até a minha própria resposta de 2018 Oo
Ethan Parker
1

Eu recebi um erro semelhante. E eu tentei "configuração do pod", não está funcionando. Depois, crio um arquivo falso que me foi dito que faltava e, em seguida, "atualização do pod" funciona.

wgr
fonte
1

vá para o diretório do projeto e digite o comando export PATH = $ PATH: $ HOME / Software / ruby ​​/ bin

Phani Sai
fonte
0

Eu tive o mesmo problema, mas tive que excluir o diretório ./Pods/ inteiro no meu projeto para poder continuar (o diretório continha links simbólicos para arquivos de outro ramo que não foram excluídos no comutador de ramo)

igraczech
fonte
0

Sei que essa é uma postagem mais antiga, mas encontrei esse problema ao mover ou excluir um arquivo .h em um pod local. Acontece que esse foi um problema com a v0.38 e a solução foi atualizar.

Veja a discussão sobre o Github aqui .

doctorBroctor
fonte