2016-08-17 57 views
45

當運行pod repo update生成以下錯誤:的CocoaPods:無法連接到GitHub上更新的CocoaPods /規格規格回購

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

我也知道這個:Master spec-repo rate limiting post‑mortem


添加--verbose標誌的號召顯示紅寶石調用堆棧:

.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

請參閱https://github.com/CocoaPods/CocoaPods/issues/7447#issuecomment-368245483,它與更舊的Ruby版本 – vikramvi

回答

36

最後設法通過刪除./cocoapods/repos/master並運行pod install來解決它。

更正式的解決方案可能會是這樣的:

pod repo remove master 
pod setup 
pod install 

爲什麼它最初無法連接到Github上超越我。

+1

有關。更改ssh密鑰後發生在我身上。作爲可能的原因之一。 – Squatch

6

此,像變魔術一樣

$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 
18

你可以試試這個:

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

但對我來說,我不得不:

  • 刪除Podfile.lock然後

  • $pod install

+1

謝謝@Mars! – Haileapp

+1

感謝兄弟! :) –

12

我也遇到了同樣的問題。在我的場景中,我使用了github上cocoapods規格的鏡像回購(託管在別處)。當我更新規格回購,它工作!

cd ~/.cocoapods/repos/master 
git pull 
+1

我得到了離線/ github下降錯誤的事情,以及這是什麼工作。我有點猶豫,卸載豆莢。 –

128

2018年2月後,一個主要問題是「弱密碼標準被刪除」。

這裏記: https://github.com/blog/2507-weak-cryptographic-standards-removed

爲了解決這個問題,首先你需要更新OpenSSL,然後紅寶石,然後cocoapod。

$ which openssl 
/usr/bin/openssl 

$ openssl version 
OpenSSL 0.9.8zh 14 Jan 2016 

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

$ 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.6.0-dev 
: 

$ rbenv install 2.5.0 

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

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

$ rbenv global 2.5.0 

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

$ ruby --version 
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin16] 

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

$ which pod 
/usr/local/bin/pod 

$ pod --version 
1.4.0 
現在

,你可以做

$ pod update 

源鏈接:https://qiita.com/satoshi-iwaki/items/ed2c267127dcc80baa21

編輯:更新紅寶石版本

+2

我真的不知道該如何謝謝你......保存了我的一天! – Reckoner

+3

不客氣:)我已經爲此失去了2天,我不想爲其他人提供:) – Adem

+1

它應該是'export PATH =「$ HOME/.rbenv/shims:$ PATH」'而不是'export PATH = 「$ HOME/.rbenv/bin:$ PATH」' – kambala

3

剛剛更新的CocoaPods:sudo gem install cocoapods

3

一個從稍微簡單的解決方案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 
+0

確實有效,謝謝 – Sergey

+0

這對我來說也是足夠的。請注意,您仍然需要通過運行'gem install cocoapods'來重新安裝cocoapods,因爲每個ruby都有自己的gem位置。順便說一句,沒有必要運行'brew install openssl'步驟,因爲它依然是ruby的依賴。 –

1

如果有人對圓CI這些問題,我與這個掙扎了一天差不多。

最後我認爲最好的方法是使用他們提供的解決方案從他們的服務器下載。

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

從這個鏈接,您可以看到的CocoaPods核心貢獻者之一說,這是罰款: 的的CocoaPods回購緩存更新每30分鐘約,這通常是足夠頻繁,只錯過了最後6推到規格回購。

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

7

甲在這個線程類似於Max'sAdem's另一種解決方案在一個CocoaPods issue發現:

brew install ruby 
sudo gem install cocoapods 

Verify that you're using the latest and correct Ruby with:

ruby --version 
which ruby 

應該使用/usr/local/bin/ruby

原因是: 事實證明,Github updated to only support TLS 1.2 on Feb 22nd.高Sierra之前的舊版MacOS預裝了Ruby 2.0。這個版本使用OpenSSL 0.9.8,其中"will fail with servers supporting only TLS 1.2."

更新到最新的Ruby(2.5)和最新的CocoaPods(1.4)爲我解決了這個問題,而無需對openssl做任何事情(Ruby更新openssl)。如果您不想更新到High Sierra,這是一個很好的解決方案。