I comandi di Cocoapods non riescono a causa di "Nessun file o directory @ dir_initialize - /Users/<username>/.cocoapods/repos (Errno :: ENOENT)"


208

Qualcuno può aiutarmi a risolvere l'errore nella traccia dello stack di seguito? Questo si verifica quando eseguo qualsiasi podcomando. Ho disinstallato e reinstallato la gemma senza fortuna.

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

AGGIORNAMENTO : risolto con il suggerimento di @ KeithSmiley.


8
Puoi provare a rimuovere ~/.cocoapodscon rm -rf ~/.cocoapodsed eseguire di pod setupnuovo.
Keith Smiley,

1
@KeithSmiley L'ho provato e ho ancora lo stesso stacktrace dall'alto durante l'esecuzione di qualsiasi podcomando, incluso pod setup.
David,

4
Bene invece di correre pod setupsi può clonare manualmente le specifiche dei pronti contro termine in ~/.cocoapods/repos/master. Quindi dovresti essere in grado di saltare questo passaggio.
Keith Smiley,

Stavo usando 'git rm -rf Pods', ma git in realtà non rimuove la directory. Per coloro che sono bloccati da questo, fai 'rm -rf Pods' e poi 'pod install'.
Borzh,

Perché non selezioni la risposta con 440+ voti?
Dirty Henry,

Risposte:


472

Se il messaggio dice che ti manca una lib:

Ho avuto lo stesso problema ed è stato risolto dopo l'esecuzione pod setupe poipod install

Se la directory mancante è la directory ruby ​​puoi fare:

Probabilmente hai recentemente aggiornato la tua gemma osx o ruby ​​e il suo PERCORSO è ancora collegato alla vecchia versione ruby. Risolvi con:

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

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

Come detto da @rendel


136
Mi chiedo perché questo non sia menzionato nella guida introduttiva di CocoaPods
Kevin Reilly,

2
Ha reso la mia serata! Grazie!
abete

4
+ 1 per averlo menzionato alla guida
introduttiva

È un bug corretto, stiamo solo aspettando di pubblicare la prossima versione
orta il

48

Cocoapods ha avuto un problema danneggiamento del loro repository github e questo costringeva gli utenti a ripulire manualmente il repository locale.

Una citazione dal post sul blog Cocoapods che dettaglia in dettaglio l'errore :

Sfortunatamente abbiamo riscontrato un bug in libgit2 e dovremo forzare il push nel repository delle specifiche. (Conosciuto anche come repository delle specifiche "master".)

Che cosa significa questo per voi? Bene, fondamentalmente la configurazione di CocoaPods si interromperà. Dovrai eliminare manualmente tutte le copie locali del repository Specifiche e ripetere la clonazione della nuova versione del repository Specifiche. Puoi farlo con i seguenti comandi:

La soluzione:

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

Basta eseguire i comandi sopra per rimuovere il repository danneggiato e reinizializzare utilizzando un repository pulito. Vedi il post di blog sopra menzionato per maggiori informazioni.

Spero che questo ti aiuti!


1
@utente3783005, se si verifica questo errore, significa che cocoapods non è installato o che i "pod" eseguibili non possono essere trovati da nessuna parte sulla PATHvariabile. utilizzare echo $PATHper stampare il percorso completo per avviare il processo di risoluzione dei problemi.
Radiovisivo,

22

Niente ha funzionato per me, ho dovuto farlo sudo gem install cocoapodse questo ha fatto la magia.


Ho dovuto farlo dopo aver completato una migrazione tramite Migration Assistant.
Jojo Narte,

21

Ho avuto un problema simile. Ho eliminato la cartella Pods ed eseguo di nuovo l'installazione pod. Problema risolto.


Grazie per questo ! Mi hai salvato alcuni momenti preziosi :)
CyberDandy,

8

Ho provato un sacco di cose e l'unica soluzione per me era dire

brew install cocoapods

e poi

brew link --overwrite cocoapods

Ora sembra funzionare bene.


1
Questo ha funzionato per me dopo aver incasinato la mia installazione in qualche modo. Grazie!
Aleks Beer

7

A volte si verifica quando si utilizza un personaggio apostrofo errato in un Podfile o in un Podspec

inserisci qui la descrizione dell'immagine

Questi apostrofi sono predefiniti quando si utilizza l'app TextEdit standard su OS X. Preferisco Sublime Text per evitare tali errori


1
Tieni presente che quando si utilizza la tecnica delle "specifiche private", i cocoapodi possono copiare il tuo Podspec privato locale in una directory chiamata "./Your_Private_Subspec_Name/Pods/Local Podspecs". Quindi, dopo aver corretto il podspec originale, è meglio eliminare quelle directory "Local Podspecs", perché i cocoapods potrebbero non aggiornare correttamente le copie
Tim

3

SOLUZIONE RAPIDA

Un buon modo per risolvere questo problema è andare nella cartella specificata e verificare il file mancante (a volte è presente ma in un formato raro) ed eliminare il file. Rimuovi anche il Podfile.lockfile

Quindi esegui pod installe tutto dovrebbe andare bene :) non è necessario rimuovere tutti i repository scaricati da Cocoapods.

Fatto!


1
QUESTO. Questa è la soluzione. Cocoapodi reinstallati, collegati, ogni genere di cose e niente ha funzionato fino a quando sono entrato nel Finder e cancellato i file all'interno del pod che era pazzo. Anche la mia risposta dal 2018 Oo
Ethan Parker


1

Ho avuto un errore simile. E ho provato "pod setup", non funziona. Quindi creo un file falso che mi è stato detto mancante, e quindi "aggiornamento pod", funziona.


1

vai alla directory del progetto e digita il comando export PATH = $ PATH: $ HOME / Software / ruby ​​/ bin


0

Ho avuto lo stesso problema, ma ho dovuto eliminare l'intera directory ./Pods/ nel mio progetto per poter continuare (la directory conteneva collegamenti simbolici a file di altri rami che non erano stati cancellati sul cambio di ramo)


0

So che questo è un post precedente, ma ho riscontrato questo problema durante lo spostamento o l'eliminazione di un file .h in un pod locale. Si è scoperto che questo era un problema con v0.38 e la soluzione era aggiornare.

Vedi la discussione del problema Github qui .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.