Los comandos de Cocoapods fallan debido a "No existe tal archivo o directorio @ dir_initialize - /Users/<username>/.cocoapods/repos (Errno :: ENOENT)"

208

¿Alguien puede ayudarme a resolver el error en el seguimiento de la pila a continuación? Esto ocurre cuando ejecuto cualquier podcomando. Desinstalé y reinstalé la gema sin suerte.

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

ACTUALIZACIÓN : corregido con la sugerencia de @ KeithSmiley.

David
fuente
8
Se puede probar a eliminar ~/.cocoapodscon rm -rf ~/.cocoapodsy funcionando pod setupde nuevo.
Keith Smiley
1
@KeithSmiley Lo intenté y sigo obteniendo el mismo stacktrace desde arriba cuando ejecuto cualquier podcomando, incluido pod setup.
David
44
Así en lugar de correr pod setuppuede clonar manualmente las especificaciones de Repo en ~/.cocoapods/repos/master. Entonces deberías poder saltarte este paso.
Keith Smiley
Estaba usando 'git rm -rf Pods', pero git en realidad no elimina el directorio. Para aquellos que están atrapados con esto, haga 'rm -rf Pods' y luego 'pod install'.
Borzh
¿Por qué no seleccionas la respuesta con más de 440 votos a favor?
Dirty Henry

Respuestas:

472

Si el mensaje dice que te falta una lib:

Tuve el mismo problema y se solucionó después de ejecutar pod setupy luegopod install

Si el directorio que falta es el directorio ruby, puede hacer:

Probablemente haya actualizado su gema osx o ruby ​​recientemente y su RUTA todavía está vinculada a la versión anterior de ruby. Arreglar con:

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

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

Como dijo @rendel

Davinder
fuente
136
Preguntándose por qué esto no se menciona en la guía de inicio de CocoaPods
Kevin Reilly
2
Se hizo mi noche! ¡Gracias!
abeto
44
+ 1 por mencionarlo en la guía de inicio
csotiriou
Es un error solucionado, solo estamos esperando que salga la próxima versión
orta
48

Cocoapods tuvo un problema en el que su repositorio github se había dañado, y esto obliga a los usuarios a limpiar su repositorio local manualmente.

Una cita de la publicación del blog Cocoapods que detalla el error :

Desafortunadamente, hemos encontrado un error en libgit2 y vamos a tener que forzar la inserción en el repositorio de especificaciones. (También conocido como el repositorio de especificaciones 'maestro').

¿Qué significa esto para ti? Bueno, básicamente la configuración de CocoaPods se va a romper. Tendrá que eliminar manualmente cualquier copia local del repositorio de especificaciones y volver a clonar la nueva versión del repositorio de especificaciones. Puede hacerlo con los siguientes comandos:

La solución:

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

Simplemente ejecutando los comandos anteriores eliminará el repositorio corrupto y se reiniciará utilizando un repositorio limpio. Consulte la publicación de blog mencionada anteriormente para obtener más información.

¡Espero que esto ayude!

radiovisual
fuente
1
@ user3783005, si obtiene ese error, significa que los cocoapods no están instalados o que los 'pods' ejecutables no se pueden encontrar en ninguna parte de su PATHvariable. use echo $PATHpara imprimir su ruta completa para comenzar el proceso de solución de problemas.
Radiovisual
22

Nada funcionó para mí, tenía que hacerlo sudo gem install cocoapodsy eso hizo la magia.

Galón
fuente
Tuve que hacer esto después de completar una migración a través del Asistente de migración.
Jojo Narte el
21

Tuve un problema similar. Eliminé la carpeta Pods y ejecuté pod install nuevamente. Problema resuelto.

Leandro
fuente
Gracias por esto ! Me salvaste algunos momentos preciosos :)
CyberDandy
8

Intenté un montón de cosas y la única solución para mí fue decir

brew install cocoapods

y entonces

brew link --overwrite cocoapods

Ahora parece estar funcionando bien.

Ethan Parker
fuente
1
Esto funcionó para mí después de que estropeé mi instalación de alguna manera. ¡Gracias!
Aleks Beer
7

A veces ocurre cuando se usa un carácter de apóstrofe incorrecto en un Podfile o en un Podspec

ingrese la descripción de la imagen aquí

Esos apóstrofes son predeterminados cuando se usa la aplicación estándar TextEdit en OS X. Prefiero Sublime Text para evitar tales errores

Tim
fuente
1
Tenga en cuenta que al usar la técnica de 'especificaciones privadas', los cocoapods pueden copiar su Podspec privado local en un directorio llamado "./Your_Private_Subspec_Name/Pods/Local Podspecs". Así, después de la fijación de la podspec originales se elimina mejor los directorios "Podspecs local", porque cocoapods pueden no actualizar las copias correctamente
Tim
3

SOLUCIÓN RÁPIDA

Una buena manera de resolver este problema es ir a la carpeta especificada y buscar el archivo que falta (a veces está allí pero en un formato raro) y eliminar el archivo. Eliminar también Podfile.lockarchivo

Luego ejecute pod instally todo debería estar bien :) no necesita eliminar todos los repositorios que Cocoapods ha descargado.

¡Hecho!

Gabriel Goncalves
fuente
1
ESTA. Esta es la solución. Reinstalé cocoapods, enlacé, todo tipo de cosas y nada funcionó hasta que entré en Finder y eliminé los archivos dentro del pod que estaban locos. Incluso mi propia respuesta de 2018 Oo
Ethan Parker
1

Tengo un error similar Y traté de "configuración de pod", no funciona. Luego creo un archivo falso que me dijeron que faltaba, y luego funciona la "actualización de pod".

wgr
fuente
1

vaya al directorio del proyecto y escriba el comando export PATH = $ PATH: $ HOME / Software / ruby ​​/ bin

Phani Sai
fuente
0

Tuve el mismo problema, pero tuve que eliminar todo el directorio ./Pods/ en mi proyecto para poder continuar (el directorio contenía enlaces simbólicos a archivos de otra rama que no se eliminaron en el cambio de rama)

igraczech
fuente
0

Sé que esta es una publicación anterior, pero me encontré con este problema al mover o eliminar un archivo .h en un pod local. Resulta que este era un problema con v0.38 y la solución era actualizar.

Vea la discusión del tema de Github aquí .

doctorBroctor
fuente