Cocoapods: ไม่สามารถเชื่อมต่อกับ GitHub เพื่ออัปเดตรายละเอียด CocoaPods / Specs repo


136

เมื่อรันpod repo updateข้อผิดพลาดต่อไปนี้จะถูกสร้างขึ้น:

Updating spec repo `master`
[!] Failed to connect to GitHub to update the CocoaPods/Specs specs repo - Please check if you are offline, or that GitHub is down


ใช้ cocoapods 1.0.1

ฉันยังตระหนักถึงเรื่องนี้: อัตราข้อมูลจำเพาะ repo มาสเตอร์ จำกัด ชันสูตรศพ


การเพิ่ม --verbose flag ในการโทรจะแสดง call stack ruby:

.rvm/gems/ruby-2.3.0/gems/cocoapods-core-1.0.1/lib/cocoapods-core/github.rb:100:in `modified_since_commit'
.rvm/gems/ruby-2.3.0/gems/cocoapods-core-1.0.1/lib/cocoapods-core/master_source.rb:32:in `requires_update?'
.rvm/gems/ruby-2.3.0/gems/cocoapods-core-1.0.1/lib/cocoapods-core/master_source.rb:14:in `update'
.rvm/gems/ruby-2.3.0/gems/cocoapods-1.0.1/lib/cocoapods/sources_manager.rb:88:in `block (2 levels) in update'
.rvm/gems/ruby-2.3.0/gems/cocoapods-1.0.1/lib/cocoapods/user_interface.rb:63:in `section'
.rvm/gems/ruby-2.3.0/gems/cocoapods-1.0.1/lib/cocoapods/sources_manager.rb:87:in `block in update'
.rvm/gems/ruby-2.3.0/gems/cocoapods-1.0.1/lib/cocoapods/sources_manager.rb:86:in `each'
.rvm/gems/ruby-2.3.0/gems/cocoapods-1.0.1/lib/cocoapods/sources_manager.rb:86:in `update'
.rvm/gems/ruby-2.3.0/gems/cocoapods-1.0.1/lib/cocoapods/command/repo/update.rb:23:in `run'
.rvm/gems/ruby-2.3.0/gems/claide-1.0.0/lib/claide/command.rb:334:in `run'
.rvm/gems/ruby-2.3.0/gems/cocoapods-1.0.1/lib/cocoapods/command.rb:50:in `run'
.rvm/gems/ruby-2.3.0/gems/cocoapods-1.0.1/bin/pod:55:in `<top (required)>'
.rvm/gems/ruby-2.3.0/bin/pod:23:in `load'
.rvm/gems/ruby-2.3.0/bin/pod:23:in `<main>'
.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval'
.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `<main>'


ไม่พบวิธีแก้ไขปัญหานี้และไม่สามารถเรียกใช้โครงการได้


1
อ้างถึงgithub.com/CocoaPods/CocoaPods/issues/ …มันเกี่ยวข้องกับ Ruby รุ่นเก่า
vikramvi

คำตอบ:


415

หนึ่งในปัญหาที่สำคัญคือ "ลบมาตรฐานการเข้ารหัสลับอ่อน" หลังจาก 2018 กุมภาพันธ์

ที่นี่หมายเหตุ: https://github.com/blog/2507-weak-cryptographic-standards-removed

ในการแก้ปัญหานี้อันดับแรกคุณต้องอัปเดต openssl จากนั้น ruby ​​จากนั้น cocoapod

$ which openssl
/usr/bin/openssl

$ openssl version
OpenSSL 0.9.8zh 14 Jan 2016

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

$ brew update

$ brew install openssl

$ brew upgrade openssl

`` If you need to have this software first in your PATH run: echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile

$ echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile

$ which openssl
/usr/local/opt/openssl/bin/openssl

$ openssl version
OpenSSL 1.0.2n  7 Dec 2017

$ brew install rbenv ruby-build

$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
$ source ~/.bash_profile

$ rbenv install --list

Available versions:
  1.8.5-p52
  1.8.5-p113
  1.8.5-p114
  1.8.5-p115
  1.8.5-p231
  1.8.6
:
  2.5.0-rc1
  2.5.0
  2.5.1
  2.6.0-dev
:

$ rbenv install 2.5.1

$ rbenv versions
* system (set by /Users/username/.rbenv/version)
  2.5.1

$ ruby --version
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]

$ rbenv global 2.5.1

$ rbenv versions
  system
* 2.5.1 (set by /Users/username/.rbenv/version)

$ ruby --version
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin16]

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

$ which pod
/usr/local/bin/pod

$ pod --version
1.5.3

ตอนนี้คุณสามารถทำได้

$ pod update

ลิงค์แหล่งที่มา: https://qiita.com/satoshi-iwaki/items/ed2c267127dcc80baa21


2
มันควรจะเป็นexport PATH="$HOME/.rbenv/shims:$PATH"และไม่export PATH="$HOME/.rbenv/bin:$PATH"
kambala

2
มีเหตุผลที่คุณติดตั้งทับทิมเวอร์ชั่น 2.1.0 หรือไม่? ทำไมไม่ล่าสุด
derickito

1
ฉันทำตามคำแนะนำนี้เพื่อการกดแป้นพิมพ์พร้อมกับคำตอบที่แนะนำในหัวข้อนี้ ... เพื่อประโยชน์ ฉันปลิวไปที่ Cocoapods repo หลายครั้ง มีช็อตยาวหรือไอเดียบ้าๆ
Nick Schneble

3
คุณควรใช้ Ruby รุ่นที่ใหม่กว่าเพราะ: "คำเตือน: ruby-2.1.0 หมดอายุการใช้งานแล้วและไม่ได้รับการสนับสนุนในขณะนี้ไม่มีการรับการแก้ไขข้อบกพร่องหรือการปรับปรุงความปลอดภัยที่สำคัญ"
jomafer

5
นอกจากนี้ยังต้องทำ rm -rf ~ / .cocoapods / ก่อนที่จะเรียกใช้การปรับปรุง pod repo
rustycode

136

การจัดการในที่สุดจะแก้ปัญหาได้โดยการลบและทำงาน./cocoapods/repos/masterpod install

ทางออกที่เป็นทางการมากขึ้นน่าจะเป็นเช่นนี้:

pod repo remove master
pod setup
pod install

หากล้มเหลวหลังจากดำเนินการสองขั้นตอนแรกคุณอาจจะต้องลบของคุณpod installPodfile.lock

ทำไมในตอนแรกที่ไม่สามารถเชื่อมต่อกับ Github นั้นเกินกว่าฉัน


5
เกิดขึ้นกับฉันหลังจากเปลี่ยนกุญแจ ssh เป็นหนึ่งในสาเหตุที่เป็นไปได้
Squatch

1
ฉันทำตามขั้นตอนทั้งหมด 3 ขั้น แต่ยังแสดง [!] ไม่สามารถเชื่อมต่อกับ GitHub เพื่ออัปเดตรายละเอียด CocoaPods / รายละเอียด repo - โปรดตรวจสอบว่าคุณออฟไลน์อยู่หรือไม่หรือ GitHub ไม่ทำงาน
Ankit Kumar Gupta

การลบไฟล์ "Podfile.lock" จากนั้นเรียกใช้งาน "pod install" เพื่อฉัน! ขอบคุณ
โปรแกรมเมอร์

51

คุณสามารถลองสิ่งนี้:

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

แต่ในกรณีของฉันฉันต้อง:

  • ลบ Podfile.lock แล้ว

  • $pod install


43

วิธีแก้ไขปัญหาอื่นที่คล้ายกับMax'sและAdemในหัวข้อนี้พบได้ในปัญหา CocoaPods :

brew install ruby
sudo gem install cocoapods

ตรวจสอบว่าคุณใช้ทับทิมรุ่นล่าสุดและแก้ไขด้วย:

ruby --version
which ruby

ควรจะใช้ /usr/local/bin/ruby

สาเหตุ: ปรากฎว่าGithub อัปเดตเพื่อรองรับ TLS 1.2 เท่านั้นในวันที่ 22 กุมภาพันธ์ MacOS เวอร์ชั่นเก่ากว่าก่อนที่ High Sierra จะติดตั้ง Ruby 2.0 ไว้ล่วงหน้า รุ่นนี้ใช้ OpenSSL 0.9.8 ซึ่ง"จะล้มเหลวด้วยเซิร์ฟเวอร์ที่สนับสนุน TLS 1.2 เท่านั้น"

การอัปเดตเป็น Ruby (2.5) ล่าสุดและ CocoaPods (1.4) ล่าสุดแก้ไขปัญหานี้ให้ฉันโดยไม่ต้องทำอะไรกับ openssl (Ruby updates openssl) นี่เป็นทางออกที่ดีหากคุณยังไม่ต้องการอัปเดตเป็น High Sierra


2
ไม่มีวิธีแก้ปัญหาอื่นที่ใช้งานได้ อัปเดตเป็น Ruby ล่าสุดและ CocoaPods ล่าสุด ขอบคุณ.
Sam Bing

1
สิ่งนี้ไม่ได้แก้ไขสำหรับฉัน แต่ฉันโหวตให้กับคำอธิบายพื้นหลัง
xdeleon

ฉันพบปัญหานี้เมื่อผลัก Podspec มันช่วยได้จริงๆ!
R0CKSTAR

รายละเอียดที่สำคัญ: ฉันติดตั้ง CocoaPods ผ่านทางชง ในกรณีนั้นการอัพเกรด Ruby และ openssl นั้นไม่เพียงพอ ฉันต้องถอนการติดตั้ง CocoaPods แล้วติดตั้งใหม่อีกครั้งgemตามที่แสดงในคำตอบนี้
Erik Doernenburg

22

ฉันยังพบปัญหาเดียวกัน ในฉากของฉันฉันใช้ mirror repo (โฮสต์ไว้ที่อื่น) ของรายละเอียด cocoapods บน github เมื่อฉันอัพเดทรายละเอียด repo มันใช้งานได้!

cd ~/.cocoapods/repos/master
git pull

2
ฉันได้รับสิ่งที่ผิดพลาดแบบออฟไลน์ / github เช่นกันและนี่คือสิ่งที่ทำงาน ฉันลังเลเล็กน้อยที่จะถอนการติดตั้งพ็อด
Ethan Parker

คำตอบนี้ใช้ได้จริงสำหรับฉัน ฉันใช้เวลามากกว่า 2 ชั่วโมง ขอบคุณมาก.
Hiren Patel

คำตอบนี้แก้ปัญหาด้วยการแก้ปัญหามากกว่าการแฮ็คโดยการลบโฟลเดอร์ที่บังคับให้โคลนคอมไพล์
NoodleOfDeath

14

สิ่งนี้ทำงานเหมือนเวทมนต์

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

มิฉะนั้น

$pod setup
Ctrl +C
cd ~/.cocoapods/repos 
$git clone --depth 1 https://github.com/CocoaPods/Specs.git master



7

ทางออกที่ง่ายกว่าเล็กน้อยจาก Adem ที่ไม่ได้ใช้ rbenv:

brew install openssl
brew upgrade openssl
brew install ruby
brew link --overwrite ruby

สุดท้ายตรวจสอบให้แน่ใจว่าคุณไม่ได้PATHตั้งค่าตัวแปรไว้/usr/local/bin หลังจาก $PATHนั้น การPATHส่งออกของคุณ~/.bash_profileควรมีลักษณะเช่นนี้:

export PATH=/usr/local/bin:$PATH

1
สิ่งนี้ก็เพียงพอแล้วสำหรับฉัน โปรดทราบว่าคุณยังคงต้องติดตั้ง cocoapods อีกครั้งโดยเรียกใช้gem install cocoapodsเนื่องจากทับทิมแต่ละตัวมีตำแหน่งอัญมณีของตนเอง BTW ไม่จำเป็นต้องดำเนินการตามbrew install opensslขั้นตอนเพราะมันขึ้นอยู่กับทับทิม
Sagi Iltus

มันช่วยฉันได้จริงๆขอบคุณ! แม้ว่าฉันจะต้องเปิดใช้งาน Terminal อีกครั้งหลังจากเปลี่ยนไฟล์ ~ / .bash_profile
joliejuly

2

หากใครมีปัญหาเหล่านี้ใน Circle CI ฉันกำลังดิ้นรนกับเรื่องนี้มาเกือบหนึ่งวัน

ในที่สุดฉันคิดว่าวิธีที่ดีที่สุดคือการใช้โซลูชันที่ให้มาเพื่อดาวน์โหลดจากเซิร์ฟเวอร์ของพวกเขา

curl https://cocoapods-specs.circleci.com/fetch-cocoapods-repo-from-s3.sh | bash -s cf

จากลิงค์นี้คุณจะเห็นได้ว่าหนึ่งในผู้สนับสนุนหลักของ cocoapods บอกว่าใช้ได้: แคช repo CocoaPods ได้รับการอัปเดตทุก ๆ 30 นาทีซึ่งโดยปกติมักจะมากพอที่จะพลาดเพียง 6 ครั้งสุดท้ายที่ไปยัง Reps รายละเอียด

https://discuss.circleci.com/t/best-practice-for-use-of-cached-cocoapods-specs/18897/2


0

ฉันทำต่อไปในเทอร์มินัล:

  1. ชงติดตั้ง openssl

    ถ้าคุณไม่มีบ้านก่อ:

    / usr / bin / ruby ​​-e "$ (curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install )"

    และทำซ้ำ p.1

  2. ส่งออก PATH = "/ usr / local / opt / openssl / bin: $ PATH"

  3. รุ่น openssl

    เอาท์พุต: OpenSSL 1.0.2n 7 ธันวาคม 2560

  4. อัพเดทพ็อด


0

ฉันก็ประสบปัญหาเดียวกัน ฉันแก้ไขมันโดยการเข้าถึงสองคำสั่งจากเทอร์มินัลเท่านั้น

sudo gem ถอนการติดตั้ง nanaimo

แล้ว

sudo gem ติดตั้ง nanaimo

หวังว่ามันจะช่วย




0

ทุกคนที่ประสบปัญหาที่คล้ายกันที่รีโมตแฮงค์ก่อนกำหนดใช้sshเพื่อคัดลอก repo แทน

git clone git@github.com: CocoaPods / Specs.git ต้นแบบ

ในการใช้ SSH เพื่อคัดลอก GitHub repo คุณต้องมีบัญชี GitHub และมีกุญแจ SSH ของคุณเชื่อมโยงอยู่

ทำตามเอกสารของพวกเขาที่นี่


0
  • อัปเดตทับทิมและ cocoapods
  • ตรวจสอบรุ่นทับทิมใน cocoapods env

ใช้

pod env

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

rbenv global x.x.x
ruby -v

เปลี่ยนรุ่นทับทิม หากไม่ได้ทำงานให้ดูrbenvนี้ไม่เปลี่ยนรุ่นทับทิม

ตรวจสอบรุ่นทับทิมใน cocoapods env ถ้าไม่เปลี่ยน

which pod

ตรวจสอบให้แน่ใจเส้นทางเส้นทางของคุณคือ/usr/local/bin/podถ้าไม่

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