คำสั่ง Cocoapods ล้มเหลวเนื่องจาก“ ไม่มีไฟล์หรือไดเรกทอรี @ dir_initialize - /Users/<username>/.cocoapods/repos (Errno :: ENOENT)”


208

ทุกคนสามารถช่วยฉันแก้ไขข้อผิดพลาดในการติดตามสแต็กด้านล่างได้หรือไม่ สิ่งนี้เกิดขึ้นเมื่อฉันรันpodคำสั่งใด ๆ ฉันถอนการติดตั้งและติดตั้งอัญมณีโดยไม่ต้องโชค

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

อัปเดต : แก้ไขด้วยคำแนะนำของ @ KeithSmiley


8
คุณสามารถลองลบ~/.cocoapodsด้วยrm -rf ~/.cocoapodsและทำงานpod setupอีกครั้ง
Keith Smiley

1
@KeithSmiley ฉันพยายามที่และยังคงได้รับ stacktrace เดียวกันจากข้างต้นเมื่อทำงานใด ๆคำสั่งรวมทั้งpod pod setup
David

4
ดีแทนที่จะวิ่งpod setupคุณสามารถโคลนรายละเอียด repo~/.cocoapods/repos/masterเข้า จากนั้นคุณควรข้ามขั้นตอนนี้ได้
Keith Smiley

ฉันใช้ 'git rm -rf Pods' แต่ git ไม่ได้ลบไดเรกทอรีจริงๆ สำหรับผู้ที่ติดอยู่กับสิ่งนี้ให้ทำ 'rm -rf Pods' และ 'ติดตั้ง pod'
Borzh

ทำไมคุณไม่เลือกคำตอบด้วย 440+ upvotes
เฮนรี่สกปรก

คำตอบ:


472

หากข้อความแจ้งว่าคุณไม่มี lib อยู่:

ฉันมีปัญหาเดียวกันและได้รับการแก้ไขหลังจากทำงานpod setupแล้วpod install

หากไดเรกทอรีที่ขาดหายไปคือ dir ruby ​​คุณสามารถทำได้:

คุณอาจอัปเดต osx หรือ gem gem ของคุณเมื่อไม่นานมานี้และ PATH ของมันยังคงเชื่อมโยงกับทับทิมรุ่นเก่า แก้ไขด้วย:

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

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

ดังที่ได้กล่าวโดย @rendel


136
สงสัยว่าทำไมถึงไม่มีการกล่าวถึงในคู่มือการเริ่มต้นใช้งาน CocoaPods
Kevin Reilly

2
มันทำให้ตอนเย็นของฉัน! ขอบคุณ!
เฟอร์

4
+1 สำหรับการกล่าวถึงคู่มือเริ่มต้น
csotiriou

มันเป็นข้อผิดพลาดคงที่เรากำลังรอการเปิดตัวเวอร์ชันถัดไป
orta

48

Cocoapods มีปัญหาที่ที่เก็บ github ของพวกเขาเสียหายและสิ่งนี้บังคับให้ผู้ใช้ล้าง repo ในพื้นที่ด้วยตนเอง

คำพูดจากบล็อก Cocoapods โพสต์รายละเอียดข้อผิดพลาด :

น่าเสียดายที่เราพบข้อผิดพลาดใน libgit2 และเราจะต้องกดเข้าไปในพื้นที่เก็บข้อมูล Specs (เรียกอีกอย่างว่า repo สเป็ค 'ต้นแบบ')

สิ่งนี้มีความหมายต่อคุณอย่างไร? โดยทั่วไปการตั้งค่า CocoaPods ของคุณกำลังจะแตก คุณจะต้องลบสำเนาใด ๆ ในพื้นที่เก็บข้อมูล Specs ด้วยตนเองและทำการโคลนพื้นที่เก็บข้อมูล Specs รุ่นใหม่อีกครั้ง คุณสามารถทำได้ด้วยคำสั่งต่อไปนี้:

การแก้ไขปัญหา:

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

เพียงเรียกใช้คำสั่งด้านบนจะลบ repo ที่เสียหายและกำหนดค่าเริ่มต้นใหม่โดยใช้ repo ใหม่ทั้งหมด ดูบล็อกโพสต์ที่กล่าวถึงข้างต้นสำหรับข้อมูลเพิ่มเติม

หวังว่านี่จะช่วยได้!


1
@ user3783005 หากคุณได้รับข้อผิดพลาดนั่นหมายความว่า cocoapods นั้นไม่ได้ถูกติดตั้งหรือไม่สามารถ 'ฝัก' ปฏิบัติการได้ไม่ว่าจะอยู่ที่ไหนในPATHตัวแปรของคุณ ใช้echo $PATHเพื่อพิมพ์เส้นทางแบบเต็มของคุณเพื่อเริ่มกระบวนการแก้ไขปัญหา
radiovisual

22

ไม่มีอะไรที่เหมาะกับฉันฉันต้องsudo gem install cocoapodsทำอย่างนั้น


ฉันต้องทำสิ่งนี้หลังจากเสร็จสิ้นการโยกย้ายผ่าน Migration Assistant
Jojo Narte

21

ฉันมีปัญหาที่คล้ายกัน ฉันลบโฟลเดอร์พ็อดแล้วเรียกใช้พ็อดติดตั้งอีกครั้ง แก้ไขปัญหา.


ขอบคุณสำหรับสิ่งนี้ ! คุณบันทึกฉันครั้งมีค่าบาง :)
CyberDandy

8

พยายามทำสิ่งต่างๆมากมายและสิ่งเดียวที่ฉันพูดก็คือ

brew install cocoapods

แล้ว

brew link --overwrite cocoapods

ตอนนี้ดูเหมือนว่าจะทำงานได้ดี


1
สิ่งนี้ใช้ได้สำหรับฉันหลังจากที่ฉันทำให้การติดตั้งของฉันวุ่นวาย ขอบคุณ!
เบียร์ Aleks

7

บางครั้งมันเกิดขึ้นเมื่อใช้อักขระเครื่องหมายวรรคตอนผิดใน Podfile หรือใน Podspec

ป้อนคำอธิบายรูปภาพที่นี่

อะพอสโทรฟีเหล่านั้นเป็นค่าเริ่มต้นเมื่อใช้แอพ TextEdit มาตรฐานใน OS X ฉันชอบ Sublime Text เพื่อหลีกเลี่ยงข้อผิดพลาดดังกล่าว


1
โปรดจำไว้ว่าเมื่อใช้เทคนิค 'private specs' cocoapods อาจคัดลอก Podspec ส่วนตัวในพื้นที่ของคุณไปยังไดเรกทอรีที่เรียกว่า "./Your_Private_Subspec_Name/Pods/Local Podspecs" ดังนั้นหลังจากที่แก้ไข podspec เดิมคุณดีกว่าลบบรรดา "Podspecs ท้องถิ่น" ไดเรกทอรีเพราะ cocoapods อาจจะไม่อัปเดตสำเนาถูกต้อง
ทิม

3

ทางออกที่รวดเร็ว

วิธีที่ดีในการแก้ปัญหานี้จะไปที่โฟลเดอร์ที่ระบุและการตรวจสอบแฟ้มที่หายไป (บางครั้งก็จะมี แต่ในรูปแบบที่หายาก) และลบไฟล์ ลบPodfile.lockไฟล์ด้วย

จากนั้นดำเนินการpod installและทุกอย่างน่าจะดี :) คุณไม่จำเป็นต้องลบ repos ทั้งหมดที่ Cocoapods ดาวน์โหลด

ทำ!


1
นี้. นี่คือการแก้ไข cocoapods ที่ติดตั้งใหม่เชื่อมโยงทุกอย่างทุกอย่างและไม่มีอะไรทำงานจนกว่าฉันจะเข้าไปใน Finder และลบไฟล์ภายในพ็อดที่บ้า แม้แต่คำตอบของฉันเองตั้งแต่ปี 2018 Oo
Ethan Parker


1

ฉันได้รับข้อผิดพลาดที่คล้ายกัน และฉันลอง "ตั้งค่าพ็อด" ไม่ทำงาน จากนั้นฉันสร้างไฟล์ปลอมที่ฉันบอกว่าหายไปจากนั้น "อัพเดทพ็อด" ทำงานได้



0

ฉันมีปัญหาเดียวกัน แต่ฉันต้องลบทั้งไดเรกทอรี. Pod / / ในโครงการของฉันเพื่อให้สามารถดำเนินการต่อ (ไดเรกทอรีมี symlink ไปยังไฟล์จากสาขาอื่น ๆ ที่ไม่ได้ถูกลบบนสวิตช์สาขา)


0

ฉันรู้ว่านี่เป็นโพสต์เก่า แต่ฉันพบปัญหานี้เมื่อย้ายหรือลบไฟล์. h ในพ็อดท้องถิ่น ปรากฎว่านี่เป็นปัญหาของ v0.38 และวิธีแก้ไขก็คือการอัพเดต

ดูการอภิปรายปัญหา Github มันนี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.