cocoapods - 'pod install' ใช้เวลาตลอดไป


276

ฉันพยายามอัปเดตพ็อดที่มีอยู่ด้วยpod installคำสั่ง แต่ใช้เวลานานในการรัน

โหมด verbose แสดงว่ามันติดอยู่ที่บรรทัดต่อไปนี้ (ถาวร)

การอัปเดตข้อมูลซื้อคืนสเปค master

$ / usr / bin / git pull - no-rebase - no-commit

ไม่มีกิจกรรมเครือข่ายหลังจากติดขัด


14
หลังจากติดขัดเป็นเวลา 90 นาทีpod installให้เข้าสู่ขั้นต่อไป ฉันเดาว่าฉันไม่อดทน
Hai Feng Kao

10
เรียกใช้ Pod install --verbose เพื่อดูข้อมูลการดีบักเพิ่มเติม สถานการณ์ทั่วไปคือการอัพเดทคอมไพล์ใช้เวลานานเกินไป หากคุณไม่ต้องการการอัปเดตให้เรียกใช้ pod install - no-repo-update
Wellbin Huang

2
พูดถึงคุณภาพของพ็อด พวกนั้นต้องแก้ไขมันในไม่ช้า ฉันติดอยู่กับเรื่องนี้ทุกครั้งที่ฉันต้องจัดการกับฝัก
จอนนี่

1
@HaiFengKao ฉันกังวลเพราะอินเทอร์เน็ตของฉันไม่ดีฉันติดตามมันมีประมาณ 350MB ที่ถูกดาวน์โหลด ขอบคุณสำหรับลิงค์ฉันคิดว่า cocoapods ต้องการเซิร์ฟเวอร์ของตัวเอง
GeneCode

2
ยังช้าช้าเหมือนกันใน 5 ปี 20k วินาทีสำหรับไฟล์ขนาดใหญ่ ไร้สาระ.
Hasen

คำตอบ:


552

ฉันพบปัญหาเดียวกันและแก้ไขได้โดยการเรียกใช้คำสั่งต่อไปนี้ที่ให้ไว้ที่นี่

pod repo remove master
pod setup
pod install

64
cocoapods - 'pod repo remove master' ใช้เวลาตลอดไป ต้องการสร้างเธรดใหม่หรือไม่ :)
dmitrynikolaev

6
ขอบคุณมันใช้งานได้สำหรับฉันและคุณสามารถเพิ่ม --verbose เพื่อแสดงรายละเอียดข้อมูลการดีบัก
สัญญาณ

2
@dmitrynikolaev ตอนแรกฉันคิดว่า pod repo remove master ยังใช้ตลอดไป แต่ปรากฎว่าฉันต้องรออีกหลายนาที เวลาที่คุณต้องการอาจแตกต่างกันไปเพราะฉันไม่รู้การตั้งค่าพ็อดของคุณ แต่ให้เวลามากกว่านี้
เฉินหลี่หยง

22
มันเป็นการดีที่จะเพิ่มคำอธิบายลงในโซลูชันที่กำหนดเพื่อให้ชัดเจน
DevGansta

4
แม้แต่การตั้งค่าพ็อดติดอยู่ที่การติดตาม $ / usr / bin / git โคลนgithub.com/CocoaPods/Specs.gitหลักการโคลนเป็น 'ต้นแบบ' ... คุณสามารถข้ามการตั้งค่าพ็อดแทน "ไปที่ ~ / .cocoapods / repos และเรียกใช้ 'git clone github.com/CocoaPods/Specs.git master'
Ammar Mujeeb

158

คุณสามารถเรียกใช้

pod install --verbose 

เพื่อดูว่าเกิดอะไรขึ้นเบื้องหลัง .. อย่างน้อยคุณจะรู้ว่ามันติดอยู่ตรงไหน (มันอาจเป็นการคอมไพล์แบบคอมไพล์ที่ใช้เวลานานเกินไปเนื่องจากเครือข่ายที่ช้าของคุณเป็นต้น)

มีความคิดที่ดียิ่งขึ้นว่าทำไมมันถึงติดอยู่ (การใช้ verbose จะทำให้คุณได้รับสิ่งนี้

-> Installing Typhoon (2.2.1)
 > GitHub download
 > Creating cache git repo (~/Library/Caches/CocoaPods/GitHub/0363445acc1ed036ea1f162b4d8d143134f53b92)
 > Cloning to Pods folder
       $ /usr/bin/git clone https://github.com/typhoon-framework/Typhoon.git ~/Library/Caches/CocoaPods/GitHub/0363445acc1ed036ea1f162b4d8d143134f53b92 --mirror
       Cloning into bare repository '~/Library/Caches/CocoaPods/GitHub/0363445acc1ed036ea1f162b4d8d143134f53b92'...

คือการหาขนาดของ repo git ที่คุณโคลน .. ถ้าคุณโคลนจาก github .. คุณสามารถใช้รูปแบบนี้:

/repos/:user/:repo

ตัวอย่างเช่นเพื่อค้นหาข้อมูลเกี่ยวกับประเภทซื้อคืนข้างต้น

https://api.github.com/repos/typhoon-framework/Typhoon

และ JSON ที่ส่งคืนจะมีขนาดคีย์ค่า ดังนั้นข้างต้นกลับ

"size": 94014,

ซึ่งประมาณ 90mb ไม่น่าแปลกใจเลยที่มันจะอยู่ตลอดไป! (btw .. ตามเวลาที่ฉันเขียน .. มันเพิ่งเสร็จสิ้น .. ha!)


อัปเดต: สิ่งที่พบได้ทั่วไปที่ฝักโกโก้ทำก่อนที่มันจะเริ่มดาวน์โหลดการอ้างอิงที่ระบุไว้ใน podfile ของคุณคือการดาวน์โหลด / อัพเดต repo ของตัวเอง (พวกเขาเรียกมันว่าการตั้งค่า Cocoapods Master repo .. ดูที่นี่:

pod install --verbose

Analyzing dependencies

Updating spec repositories
  $ /usr/bin/git rev-parse  >/dev/null 2>&1
  $ /usr/bin/git ls-remote
  From https://github.com/CocoaPods/Specs.git
  09b0e7431ab82063d467296904a85d72ed40cd73  HEAD
  ..

ข่าวร้ายก็คือว่าถ้าคุณทำตามขั้นตอนข้างต้นจะหาวิธีที่ใหญ่ repo โกโก้ฝักเป็น .. คุณจะได้รับนี้ : "ขนาด": 614373 .. ซึ่งเป็นจำนวนมาก

ดังนั้นเพื่อให้ได้วิธีที่แม่นยำยิ่งขึ้นในการทราบระยะเวลาที่ใช้เพียงแค่ติดตั้ง repo ของคุณเอง .. คุณสามารถตั้งค่าฝักโกโก้ต้นแบบ repo แยกต่างหากโดยใช้pod setup:

$ pod help setup
Usage:

$ pod setup

  Creates a directory at `~/.cocoapods/repos` which will hold your spec-repos.
  This is where it will create a clone of the public `master` spec-repo from:

      https://github.com/CocoaPods/Specs

  If the clone already exists, it will ensure that it is up-to-date.

จากนั้นทำงาน pod install


15
นี่เป็นคำอธิบายเดียวของcocoapods " WTF " คือ "สูงถึง" ... ที่ฉันเคยเห็น
Alex Gray

2
การดาวน์โหลดของ repo หลักใช้เวลา 20 นาทีในการจ้องมองที่เคอร์เซอร์กะพริบ (และฉันมีการเชื่อมต่ออินเทอร์เน็ตเพียง
150Mb

มีไฟล์ / ไดเรกทอรีมากกว่า 17,000 ไฟล์ในไดเรกทอรี specs มันไม่ใช่วิธีการที่เป็นมิตรกับคอมไพล์มากที่สุดไม่ว่าเขาจะทำอะไรก็ตาม
Erik Reppen

เมื่อฉันรันคำสั่งนี้ cocoapods ของฉันแสดงให้ฉันเห็นว่ามันเสร็จแล้ว ด้วยการติดตั้ง ขอบคุณ!
Jameela Huq

เวลาส่วนใหญ่เป็นเรื่องของการพึ่งพาอาศัยกันมากซึ่งใช้เวลาในการดาวน์โหลดนานมาก
OhadM

29

การแก้ปัญหาที่เป็นไปได้:

  1. การอัปเดตฝักโกโก้อาจช่วยแก้ปัญหานี้ได้
  2. ทำความสะอาดและติดตั้งพ็อดใหม่อีกครั้ง

อัปเดต CocoaPods

เปิด terminal และประเภท:

$ sudo gem update cocoapods

ติดตั้งพ็อดอีกครั้ง

ขั้นตอนที่ 1

ลบพ็อดทั้งหมดออกจากโครงการของคุณ ( ส่วนที่ยุ่งยาก ):

ด้วยมือ

  1. ลบระเบียน Pods ทั้งหมดในBuild Phasesของโครงการของคุณ (ทำเครื่องหมายสีแดง)

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

  1. ลบlibPods.aภายใต้โฟลเดอร์Frameworks

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

  1. ตอนนี้ตรงไปที่ไดเรกทอรีโครงการและลบPodfile.lock *,โฟลเดอร์Podsและพื้นที่ทำงาน (ลบออกจากถังขยะด้วย)

ใช้CocoaPods De-Integrationโดยอัตโนมัติ

ติดตั้ง

$ [sudo] gem install cocoapods-deintegrate

วิ่ง

$ pod deintegrate

ขั้นตอนที่ 2

ที่นี่เราจะผ่านการติดตั้ง Pods อีกครั้ง

เปลี่ยนตำแหน่งไดเรกทอรีของคุณ

$ cd yourprojectdirectory

แก้ไข podfile ด้วยการเพิ่มบรรทัดที่คุณต้องการ

$ open -a Xcode podfile 

หรือ

$ nano podfile

ในที่สุดติดตั้งพ็อดอีกครั้ง

$ pod install

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


ไร้ประโยชน์ เพิ่งติดตั้ง cocoapods ใหม่ติดตั้ง pod init และติดตั้งพ็อดใหม่เรื่อย ๆ
woens

@ ทั้งสองขึ้นอยู่กับว่าคุณดึงห้องสมุดอะไร คุณสามารถลองใช้เครื่องมือนี้ซึ่งยกเลิกการบูรณาการ
พ็อด

ไม่มี! นั่นคือประเด็นทั้งหมด สิ่งนี้จะเกิดขึ้นเมื่อคุณเริ่มต้นด้วย init จากนั้นติดตั้งในโครงการว่างเปล่า
woens

@woens คุณหมายถึงอะไรโดยไม่มี? จุดที่ติดตั้งพ็อดอยู่ที่ไหนเมื่อไม่มีพ็อด (ถ้าฉันเข้าใจคุณถูกต้อง)
E-Riddie

เพียงแค่เริ่มโครงการที่ว่างเปล่าและเตรียมมันเพื่อเพิ่มสิ่งต่าง ๆ ในภายหลัง ดังนั้น: สร้างโครงการ xcode, เรียกใช้ pod init, เรียกใช้ pod install ในขณะนี้การติดตั้งพ็อดจะหยุดทำงาน
woens

19

ฉันพบวิธีอื่นในการแก้ปัญหา

pod install --verbose --no-repo-update

มันใช้งานได้สำหรับฉัน


ยังคงต้องโคลนนิ่งในครั้งแรก
Erik Reppen

14

จนถึงวันที่ 15 สิงหาคม 2559 repo เป็นไฟล์ขนาดใหญ่ 2.39GB ฉันเปิดการตรวจสอบกิจกรรมเพื่อดูว่าเครื่องกำลังทำอะไร มันกำลังดาวน์โหลดไฟล์ขนาดใหญ่นี้


13

เป็นแหลมออกจากที่นี่git-ระยะไกล http กระบวนการทำงานในพื้นหลัง ฉันข้ามขั้นตอนนี้จากการตรวจสอบกิจกรรมและออกจากกระบวนการนี้ต่อกระบวนการพ็อดซึ่งติดอยู่ที่ "การอัปเดตที่เก็บข้อมูลจำเพาะท้องถิ่น " หลังจาก POD INSTALL


13

อัปเดตคำตอบสำหรับปี 2019 - ทีมโกโก้ฝักย้ายไปใช้ CDN ของตัวเองซึ่งแก้ปัญหานี้ซึ่งเกิดจากการ จำกัด อัตรา GitHub ดังที่อธิบายไว้ที่นี่: https://blog.cocoapods.org/CocoaPods-1.7.2/

TL; DR คุณต้องเปลี่ยนบรรทัดซอร์สในของคุณPodfileเป็น:

source 'https://cdn.cocoapods.org/'

นี่คือคำตอบที่ถูกต้อง anno 2019 หากคำตอบที่ยอมรับเท่านั้นอาจมีการเปลี่ยนแปลง ...
Ian Kemp

9

นี่คือสิ่งที่ได้ผลสำหรับฉัน:

  1. ลบเนื้อหาทั้งหมดภายใต้ ~/.CocoaPods
  2. ลบไฟล์ที่มีอยู่Podfile.lockและPodsโฟลเดอร์ของคุณ
  3. ปล่อย PodFile ของคุณไว้เหมือนเดิม
  4. วิ่ง sudo gem install cocoapods --verbose
  5. วิ่ง pod install --verbose

ฉันขอแนะนำให้ใช้การตั้งค่าสถานะ --verbose เนื่องจากเทอร์มินัลไม่ดีเมื่อให้ความคืบหน้าในการดำเนินการคำสั่ง ตัวเลือก verbose ช่วยได้มาก!


5
ระวังว่า repo หลักที่ ~ / .cocoapods มีขนาดใหญ่มาก (~ 1GB) ดังนั้นการลบและติดตั้งใหม่จะใช้เวลานาน ถ้าฉันรู้เรื่องนี้ฉันก็จะลองpod install --verboseก่อนที่จะหันไปลบ repo หลัก
ไบนารีเนท

7

เพียงทำตามขั้นตอนด้านล่าง:

ดาวน์โหลดhttps://github.com/CocoaPods/Specs/archive/master.zip

เรียกใช้คำสั่งด้านล่างในเทอร์มินัล:

pod setup --verbose

เปิดแท็บใหม่ในเทอร์มินัลและ RUN

mv ~/.cocoapods/repos/master/.git ~/tempSpecsGitFolder

เปิด master.zip (การขยายไฟล์)

mv Specs-master ~/.cocoapods/repos/master

mv ~/tempSpecsGitFolder ~/.cocoapods/repos/master/.git

cd [โฟลเดอร์โครงการ]

ติดตั้ง pod - no-repo-update



4

ดังที่กล่าวไว้ในคำตอบอื่น ๆ มันใช้เวลาตลอดไปเพราะขนาดของ cocoapods master repo นั้นใหญ่มาก เวลานี้สามารถลดลงได้โดยใช้ขั้นตอนต่อไปนี้

1) สร้างเส้นทางไฟล์สเปคส่วนตัวบนที่เก็บ github ของคุณ ระบุเส้นทางนี้https://github.com/yourpathForspecs.git 'เป็นแหล่งข้อมูลใน podfile ของคุณ

2) ระบุที่เก็บทั้งหมดที่คุณต้องการและการอ้างอิงของพวกเขา (กล่าวถึงในไฟล์ podspec.json บน cocoapods สำหรับที่เก็บเหล่านี้) และรับไฟล์ podspec.json จาก cocoapods เพิ่มไฟล์ podspec.json เหล่านี้พร้อมโฟลเดอร์ (พูดถึงโฟลเดอร์เวอร์ชันล่าสุดสำหรับสลักเกลียว) ในที่เก็บข้อมูลจำเพาะนี้

3) ลบแหล่งที่มา ' https://github.com/CocoaPods/Specs.git ' ใน podfile

4) การอัพเดทพ็อด

การดำเนินการนี้จะใช้เวลาน้อยลงอย่างมากเนื่องจากต้องมีการดึงข้อมูลและดาวน์โหลดพ็อดที่คุณต้องการแทนที่จะเป็นพื้นที่เก็บข้อมูล cocoapods ทั้งหมด ในกรณีของฉันมันลดเวลาการอัพเดทพ็อดจาก 15-20 นาทีโดยเฉลี่ยเป็น 3-4 นาทีมากที่สุด


1

ขั้นตอนการติดตั้ง Pod

เทอร์มินัลแรกที่เปิด:

chmod o-w /usr/local

sudo chmod o-w /usr/local

sudo gem install cocoapods

หากติดตั้งพ็อดในระบบของคุณแล้วให้ทำตามขั้นตอนด้านล่าง

sudo gem install cocoapods -V

sudo gem update --system

pod setup

cd /Users/apple/Desktop/Black\&WhiteImageDemo

pod init

open -a Xcode Podfile

pod install

1

ฉันมีปัญหาเดียวกันฉันจึงตระหนักว่าฉันยังคงใช้งานเครือข่ายปรับอากาศใน "เครือข่ายแย่มาก" การปิดการทำงานช่วยแก้ไขปัญหาได้

หวังว่าจะช่วยใครซักคน


1

ฉันแก้ไขปัญหานี้เช่นนั้น:

rm -fr ~/Library/Caches/CocoaPods && \
gem update --system && \
gem update && \
gem cleanup && \
pod setup

การอ้างอิง: http://blog.cocoapods.org/Repairing-Our-Broken-Specs-Repository/


1
ฉันpod setupใช้ไปตลอดกาลและฉันถูกยกเลิกหลังจาก 30 นาที ฉันเพิ่งทำตามขั้นตอนนี้และgit cloneหลังจากนี้เสร็จประมาณ 5 นาที
neoneye

1

ฉันมีปัญหาเดียวกัน หลังจากวิ่ง

pod install
Setting up CocoaPods master repo

iterm2 ติดอยู่ในการตั้งค่า CocoaPods

ฉันแก้ไขปัญหาโดยเรียกใช้

sudo gem install CocoaPods

สิ่งนี้ถูกกล่าวถึงในเว็บไซต์ CocoaPods



0

แม้ว่าฉันจะคิดเหมือนกัน หากคุณเปิดActivity Monitorคุณจะเห็นว่ามีการดาวน์โหลดบางสิ่งที่นั่นในชื่อของ GIT

ฉันพบว่าเคล็ดลับนี้มีประโยชน์

https://stackoverflow.com/a/21916507/563735


0

ทางออกสำหรับฉันในเวลา 11.2019

สวัสดีฉันลองหลายสิ่งหลายอย่าง แต่ไม่มีอะไรทำงาน ลองเชื่อมต่อกับเว็บไซต์นี้https://cdn.cocoapods.org/หากคุณไม่สามารถใช้ VPN และpod installอื่น ๆ ได้และอย่าลืมใช้--verboseเพื่อทำความเข้าใจว่าเกิดอะไรขึ้น

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