Perintah Cocoapods gagal karena “Tidak ada file atau direktori tersebut @ dir_initialize - /Users/<username>/.cocoapods/repos (Errno :: ENOENT)”

208

Adakah yang bisa membantu saya menyelesaikan kesalahan dalam jejak tumpukan di bawah ini? Ini terjadi ketika saya menjalankan podperintah apa pun . Saya telah mencopot dan menginstal ulang permata tanpa hasil.

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 : Diperbaiki dengan saran @ KeithSmiley.

David
sumber
8
Bisakah Anda mencoba menghapus ~/.cocoapodsdengan rm -rf ~/.cocoapodsdan menjalankan pod setuplagi.
Keith Smiley
1
@KeithSmiley Saya mencobanya dan masih mendapatkan stacktrace yang sama dari atas ketika menjalankan podperintah apa pun , termasuk pod setup.
David
4
Nah bukannya berjalan pod setupAnda dapat secara manual clone spesifikasi repo ke ~/.cocoapods/repos/master. Maka Anda harus dapat melewati langkah ini.
Keith Smiley
Saya menggunakan 'git rm -rf Pods', tetapi git tidak benar-benar menghapus direktori. Bagi mereka yang terjebak dengan ini, lakukan 'rm -rf Pods' dan kemudian 'pod install'.
Borzh
Mengapa Anda tidak memilih jawabannya dengan 440+ upvotes?
Dirty Henry

Jawaban:

472

Jika pesan mengatakan Anda kehilangan lib:

Saya mendapat masalah yang sama dan diperbaiki setelah berjalan pod setupdan kemudianpod install

Jika direktori yang hilang adalah direktori ruby ​​yang dapat Anda lakukan:

Anda mungkin telah memperbarui osx atau permata ruby ​​Anda baru-baru ini dan PATH-nya masih terhubung ke versi ruby ​​yang lama. Perbaiki dengan:

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

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

Seperti yang dikatakan oleh @rendel

Davinder
sumber
136
Bertanya-tanya mengapa ini tidak disebutkan dalam panduan persiapan CocoaPods
Kevin Reilly
2
Itu membuat malamku! Terima kasih!
fir
4
+1 untuk menyebutkannya ke panduan memulai
csotiriou
Its bug tetap, kami hanya menunggu untuk mendapatkan versi berikutnya keluar
orta
48

Cocoapods memiliki masalah ketika repositori github mereka menjadi rusak, dan ini memaksa pengguna untuk membersihkan repo lokal mereka secara manual.

Kutipan dari posting blog Cocoapod yang merinci kesalahan :

Sayangnya kami telah menemukan bug di libgit2 dan kami harus mendorong paksa ke repositori Specs. (Juga dikenal sebagai repo spec 'master'.)

Apa artinya ini bagi Anda? Yah, pada dasarnya pengaturan CocoaPods Anda akan rusak. Anda harus menghapus salinan lokal dari repositori Specs secara manual dan mengkloning kembali versi baru repositori Specs. Anda dapat melakukannya dengan perintah berikut:

Solusinya:

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

Cukup menjalankan perintah di atas akan menghapus repo rusak dan menginisialisasi ulang menggunakan repo bersih. Lihat blogpost yang disebutkan di atas untuk informasi lebih lanjut.

Semoga ini membantu!

radiovisual
sumber
1
@ user3783005, jika Anda mendapatkan kesalahan itu, berarti cocoapod tidak diinstal, atau 'pod' yang dapat dieksekusi tidak dapat ditemukan di mana pun pada PATHvariabel Anda . gunakan echo $PATHuntuk mencetak path lengkap Anda untuk memulai proses pemecahan masalah.
Radiovisual
22

Tidak ada yang berhasil untuk saya, saya harus melakukannya sudo gem install cocoapodsdan itu berhasil.

Gal
sumber
Saya harus melakukan ini setelah menyelesaikan migrasi melalui Asisten Migrasi.
Jojo Narte
21

Saya memiliki masalah serupa. Saya menghapus folder Pods dan menjalankan instal pod lagi. Masalah terpecahkan.

Leandro
sumber
Terima kasih untuk ini ! Anda menyelamatkan saya beberapa saat berharga :)
CyberDandy
8

Mencoba banyak hal dan satu-satunya perbaikan untuk saya katakan

brew install cocoapods

lalu

brew link --overwrite cocoapods

Sekarang tampaknya berfungsi dengan baik.

Ethan Parker
sumber
1
Ini bekerja untuk saya setelah saya mengacaukan instalasi saya entah bagaimana. Terima kasih!
Aleks Beer
7

Kadang-kadang terjadi ketika menggunakan karakter tanda kutip salah di Podfile atau di Podspec

masukkan deskripsi gambar di sini

Apostrof itu default ketika menggunakan aplikasi TextEdit standar pada OS X. Saya lebih suka Sublime Text untuk menghindari kesalahan tersebut

Tim
sumber
1
Perlu diingat, bahwa ketika menggunakan teknik 'spesifikasi pribadi', cocoapods dapat menyalin Podspec pribadi lokal Anda ke direktori yang disebut "./Your_Private_Subspec_Name/Pods/Local Podspecs". Jadi, setelah memperbaiki podspec asli Anda sebaiknya menghapus direktori "Local Podspecs" itu, karena cocoapods mungkin tidak memperbarui salinan dengan benar
Tim
3

SOLUSI CEPAT

Cara yang baik untuk menyelesaikan masalah ini adalah pergi ke folder yang ditentukan dan memeriksa file yang hilang (kadang-kadang ada tetapi dalam format yang langka) dan menghapus file. Hapus jugaPodfile.lock file

Kemudian jalankan pod installdan semuanya akan baik-baik saja :) Anda tidak perlu menghapus semua repo yang telah diunduh Cocoapods.

Selesai!

Gabriel Goncalves
sumber
1
INI. Ini perbaikannya. Instal ulang cocoapods, ditautkan, semua jenis barang dan tidak ada yang berhasil sampai saya masuk ke Finder dan menghapus file di dalam pod yang gila. Bahkan jawaban saya sendiri dari 2018 Oo
Ethan Parker
1

Saya mendapat kesalahan serupa. Dan saya mencoba "pengaturan pod", tidak bekerja. Lalu saya membuat file palsu yang saya diberitahu hilang, dan kemudian "pembaruan pod", berfungsi.

wgr
sumber
1

buka direktori proyek dan ketik perintah export PATH = $ PATH: $ HOME / Software / ruby ​​/ bin

Phani Sai
sumber
0

Saya mendapat masalah yang sama, tetapi saya harus menghapus seluruh direktori ./Pods/ dalam proyek saya untuk dapat melanjutkan (direktori berisi symlink ke file dari cabang lain yang tidak dihapus pada switch cabang)

igraczech
sumber
0

Saya tahu ini adalah posting yang lebih lama, tetapi saya mengalami masalah ini ketika memindahkan atau menghapus file .h di pod lokal. Ternyata ini adalah masalah dengan v0.38 dan solusinya adalah memperbarui.

Lihat diskusi masalah Github di sini .

dokterBroctor
sumber