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.


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


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!


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.


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.


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.


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


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!


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".


1

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


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)


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í .

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.