Cocoapods: Không thể kết nối với GitHub để cập nhật repo thông số kỹ thuật / thông số kỹ thuật


136

Khi chạy pod repo updatelỗi sau đây được tạo ra:

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


Sử dụng cocoapods 1.0.1

Tôi cũng nhận thức được điều này: Master spec-repo Rate giới hạn bài ‑ mortem .


Thêm cờ --verbose vào cuộc gọi sẽ hiển thị ngăn xếp cuộc gọi 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>'


Không thể tìm thấy bất kỳ cách nào để khắc phục điều này và không thể chạy dự án.


1
Tham khảo github.com/CocoaPods/CocoaPods/issues/ , nó liên quan đến phiên bản Ruby cũ hơn
vikramvi

Câu trả lời:


415

Một trong những vấn đề chính là "các tiêu chuẩn mật mã yếu bị loại bỏ" sau tháng 2 năm 2018.

Dưới đây là một ghi chú: https://github.com/blog/2507-weak-cryptographic-stiterias-remond

Để giải quyết điều này, đầu tiên bạn cần cập nhật openssl, sau đó là ruby, sau đó là 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

bây giờ, bạn có thể làm

$ pod update

liên kết nguồn: https://qiita.com/satoshi-iwaki/items/ed2c267127dcc80baa21


2
nó nên export PATH="$HOME/.rbenv/shims:$PATH"và khôngexport PATH="$HOME/.rbenv/bin:$PATH"
kambala

2
Có lý do tại sao bạn cài đặt phiên bản 2.1.0 của ruby ​​không? Tại sao không phải là mới nhất?
derickito

1
Tôi đã làm theo lời khuyên này cho tổ hợp phím, cùng với mọi câu trả lời được đề xuất khác trong chủ đề này ... không có kết quả. Tôi đã thổi bay repo Cocoapods rất nhiều lần. Bất kỳ bức ảnh dài hoặc ý tưởng điên rồ ngoài kia?
Nick Schneble

3
Bạn nên sử dụng phiên bản Ruby mới hơn vì điều này: "CẢNH BÁO: ruby-2.1.0 đã qua thời hạn sử dụng và hiện không được hỗ trợ. Nó không còn nhận được các bản sửa lỗi hoặc cập nhật bảo mật quan trọng."
jomafer

5
Cũng phải thực hiện rm -rf ~ / .cocoapods / trước khi chạy cập nhật pod repo
Rustycode

136

Cuối cùng quản lý để giải quyết nó bằng cách xóa ./cocoapods/repos/mastervà chạy pod install.

Các giải pháp chính thức hơn có thể sẽ đi như thế này:

pod repo remove master
pod setup
pod install

Nếu pod installthất bại sau khi thực hiện hai bước đầu tiên, bạn có thể cần phải xóa Podfile.lock.

Tại sao ban đầu nó không kết nối được với Github lại nằm ngoài tôi.


5
Đã xảy ra với tôi sau khi thay đổi phím ssh. Là một trong những lý do có thể.
Squatch

1
Tôi đã thực hiện tất cả 3 bước nhưng nó vẫn hiển thị [!] Không thể kết nối với GitHub để cập nhật repo thông số kỹ thuật / thông số kỹ thuật - Vui lòng kiểm tra nếu bạn ngoại tuyến hoặc GitHub không hoạt động
Ankit Kumar Gupta

xóa tệp "Podfile.lock" và sau đó thực hiện "cài đặt pod" làm việc cho tôi! Cảm ơn
lập trình viên

51

Bạn có thể thử điều này:

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

nhưng trong trường hợp của tôi, tôi đã phải:

  • xóa Podfile.lock và sau đó

  • $pod install


43

Một giải pháp khác tương tự như MaxAdem trong chủ đề này được tìm thấy trong một vấn đề của Cốc Cốc :

brew install ruby
sudo gem install cocoapods

Xác minh rằng bạn đang sử dụng Ruby mới nhất và chính xác với:

ruby --version
which ruby

Nên dùng /usr/local/bin/ruby

Lý do: Hóa ra Github cập nhật để chỉ hỗ trợ TLS 1.2 vào ngày 22 tháng 2. Các phiên bản cũ hơn của MacOS trước khi High Sierra được cài đặt sẵn với Ruby 2.0. Phiên bản này sử dụng OpenSSL 0.9.8, "sẽ thất bại với các máy chủ chỉ hỗ trợ TLS 1.2."

Việc cập nhật lên Ruby mới nhất (2.5) và mới nhất là Cốc Cốc (1.4) đã sửa lỗi này cho tôi mà không phải làm gì với openssl (Cập nhật Ruby openssl). Đây là một giải pháp tốt nếu bạn chưa muốn cập nhật lên High Sierra.


2
Không có giải pháp nào khác làm việc, điều này đã làm. Cập nhật lên Ruby mới nhất và lên Cốc Cốc mới nhất. Cảm ơn bạn.
Sam Bing

1
Điều này đã không sửa nó cho tôi, nhưng tôi đã bỏ phiếu cho lời giải thích lý lịch.
xdeleon

Tôi đã gặp vấn đề này khi đẩy một podspec. Điều này thực sự có ích!
R0CKSTAR

Chi tiết quan trọng: Tôi đã cài đặt Cốc Cốc thông qua bia. Trong trường hợp đó, nâng cấp Ruby và openssl là không đủ. Tôi đã phải gỡ cài đặt CocoaPods và sau đó cài đặt lại thông qua gemnhư trong câu trả lời này.
Erik Doernenburg

22

Tôi cũng gặp phải vấn đề tương tự. Trong cảnh của tôi, tôi đã sử dụng một repo gương (được lưu trữ ở nơi khác) của thông số kỹ thuật cocoapods trên github. Khi tôi cập nhật thông số kỹ thuật repo, nó đã hoạt động!

cd ~/.cocoapods/repos/master
git pull

2
Tôi cũng đã nhận được lỗi ngoại tuyến / github và đây là những gì đã làm việc. Tôi đã có một chút do dự để gỡ cài đặt pod.
Ethan Parker

Câu trả lời này thực sự làm việc cho tôi. Tôi đã dành hơn 2 giờ. Cảm ơn rất nhiều.
Hiren Patel

Câu trả lời này thực sự giải quyết nguyên nhân bằng một giải pháp chứ không phải là hack bằng cách xóa thư mục buộc bản sao git.
NoodleOfDeath 20/03/19

14

Điều này làm việc như ma thuật

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

Nếu không thì

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

8

Điều này làm việc cho tôi:

  1. Tẩy Podfile.lock
  2. Chạy pod install

7

Chỉ cần cập nhật cocoapods: sudo gem install cocoapods


7

Một giải pháp đơn giản hơn một chút từ Adem không sử dụng rbenv:

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

Cuối cùng, hãy chắc chắn rằng bạn không có PATHbiến được đặt /usr/local/bin sau $PATH . PATHXuất khẩu của bạn ~/.bash_profilesẽ trông giống như thế này:

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

1
Điều này cũng là đủ cho tôi. Lưu ý rằng bạn vẫn cần cài đặt lại cocoapods bằng cách chạy gem install cocoapodsvì mỗi viên ruby ​​có vị trí đá quý riêng. BTW, dù sao cũng không cần phải thực hiện brew install opensslbước này vì đó là sự phụ thuộc của ruby.
Sagi Iltus

Nó thực sự giúp tôi, cảm ơn! Mặc dù tôi đã phải khởi chạy lại Terminal sau khi thay đổi tệp ~ / .bash_profile.
vui vẻ

2

Nếu ai đó có những vấn đề này trên Circle CI, tôi đã phải vật lộn với điều này trong một ngày.

Cuối cùng tôi nghĩ cách tốt nhất là sử dụng giải pháp được cung cấp của họ để tải xuống từ máy chủ của họ.

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

Từ liên kết này, bạn có thể thấy rằng một trong những người đóng góp cốt lõi của cocoapods nói rằng nó ổn: Bộ nhớ cache repo của Cốc Cốc được cập nhật khoảng 30 phút một lần, thường là đủ thường xuyên để chỉ bỏ lỡ 6 lần đẩy cuối cùng vào Thông số kỹ thuật.

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



0

Tôi cũng đang đối mặt với vấn đề tương tự. Tôi đã giải quyết nó chỉ bằng cách truy cập hai lệnh từ thiết bị đầu cuối.

sudo gem gỡ cài đặt nanaimo

và sau đó

đá quý sudo cài đặt nanaimo

Hy vọng nó sẽ giúp.


0
  1. Hủy bỏ tất cả các gói cocoapods. Xem ở đây để biết thông tin về cách làm điều này.

  2. Sau đó cài đặt lại cocoapods. $ sudo gem install cocoapods


0

Đối với tôi các lệnh dưới đây đã khắc phục sự cố

Loại bỏ cocoapods từ mac

 sudo gem uninstall cocoapods

Cài đặt cocoapods trên mac

sudo gem install cocoapods

0

Bất cứ ai phải đối mặt với bất kỳ vấn đề tương tự mà điều khiển từ xa bị treo sớm, sử dụng sshđể sao chép repo thay thế.

git clone git@github.com: CacaoPods / Specs.git master.

Để sử dụng SSH để sao chép repo GitHub, bạn cần có tài khoản GitHub và có các khóa SSH được liên kết với nó.

Thực hiện theo các tài liệu của họ ở đây .


0
  • cập nhật ruby ​​và cocoapods.
  • kiểm tra phiên bản ruby ​​trong cocoapods env.

sử dụng

pod env

nhập mô tả hình ảnh ở đây

rbenv global x.x.x
ruby -v

thay đổi phiên bản ruby. Nếu không hoạt động, xem rbenv này không thay đổi phiên bản ruby

kiểm tra phiên bản ruby ​​trong cocoapods env. Nếu không thay đổi,

which pod

hãy chắc chắn rằng đường dẫn pod của bạn là /usr/local/bin/pod, nếu không

export PATH=/usr/local/bin:$PATH
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.