Cocoapods:无法连接到GitHub以更新CocoaPods / Specs规范回购


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

我也意识到这一点:事后规范主回购速率


在调用中添加--verbose标志将显示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

Answers:


415

主要问题之一是在2018年2月之后“删除了弱加密标准”。

这里有一个注释: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版的ruby,有原因吗?为什么不最新?
derickito

1
我按照这个建议进行了击键,并在该线程中遵循了所有其他建议的答案……无济于事。我已经吹走了Cocoapods回购很多次了。有远景或疯狂的想法吗?
尼克·施内布尔

3
您应该使用较新的Ruby版本,因为:“警告:ruby-2.1.0已过期,现在不受支持。它不再收到错误修复或重要的安全更新。”
jomafer

5
在运行pod repo更新之前还必须做rm -rf〜/ .cocoapods /
rustycode

136

最终设法通过删除./cocoapods/repos/master并运行来解决pod install

更正式的解决方案可能是这样的:

pod repo remove master
pod setup
pod install

如果pod install执行前两个步骤后失败,则可能需要删除您的Podfile.lock

它最初无法连接到Github的原因超出了我。


5
更改ssh键后发生在我身上。作为可能的原因之一。
Squatch

1
我完成了所有3个步骤,但仍然显示[!]无法连接到GitHub以更新CocoaPods / Specs规范回购-请检查您是否已离线,或者GitHub是否已关闭
Ankit Kumar Gupta

删除“ Podfile.lock”文件,然后执行“ pod install”对我有用!谢谢
程序员

51

您可以尝试以下方法:

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

但就我而言,我必须:

  • 删除Podfile.lock,然后

  • $pod install


43

CocoaPods问题中找到了与此线程中的MaxAdem相似的另一种解决方案:

brew install ruby
sudo gem install cocoapods

验证您使用的是最新且正确的Ruby:

ruby --version
which ruby

应该使用 /usr/local/bin/ruby

原因: 事实证明,Github在2月22日更新为仅支持TLS 1.2。High Sierra之前的旧版本MacOS已预装Ruby 2.0。此版本使用OpenSSL 0.9.8,它“在仅支持TLS 1.2的服务器上将失败”。

更新至最新的Ruby(2.5)和最新的CocoaPods(1.4)可以解决此问题,而无需对openssl进行任何处理(Ruby更新openssl)。如果您现在还不想更新到High Sierra,这是一个很好的解决方案。


2
其他解决方案均无效,但确实如此。更新到最新的Ruby和最新的CocoaPods。谢谢。
Sam Bing

1
这并不能解决我的问题,但是我投票赞成背景说明。
xdeleon

我在推podspec时遇到了这个问题。这真的有帮助!
R0CKSTAR

重要细节:我通过brew安装了CocoaPods。在那种情况下,仅升级Ruby和openssl是不够的。我必须卸载CocoaPods,然后gem按照此答案所示通过重新安装它。
Erik Doernenburg

22

我也遇到了同样的问题。在我的场景中,我在github上使用了cocoapods规格的镜像存储库(托管在其他地方)。当我更新规格仓库时,它起作用了!

cd ~/.cocoapods/repos/master
git pull

2
我也收到了脱机/ github失败错误的东西,这是有效的。我有点犹豫要卸载Pod。
伊桑·帕克

这个答案实际上对我有用。我花了两个多小时。非常感谢。
埃伦·帕特尔

这个答案实际上是通过删除强制git克隆的文件夹来解决问题的,而不是解决问题的方法。
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

只需更新cocoapods: sudo gem install cocoapods


7

不使用rbenv的来自Adem的稍微简单的解决方案:

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

最后,确保您没有将PATH变量设置为/usr/local/bin after之后 $PATH。您的PATH导出~/.bash_profile应类似于以下内容:

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

1
这对我来说也足够了。请注意,gem install cocoapods由于每个红宝石都有其自己的宝石位置,因此您仍然需要通过运行来重新安装可可豆。顺便说一句,没有必要执行此brew install openssl步骤,因为它还是依赖于ruby。
Sagi Iltus

真的对我有帮助,谢谢!虽然我不得不在更改〜/ .bash_profile文件后重新启动终端。
joliejuly

2

如果有人在Circle CI上遇到这些问题,我几乎每天都会为此而苦苦挣扎。

最后,我认为最好的方法是使用他们提供的解决方案从他们的服务器下载。

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

从此链接中,您可以看到cocoapods的核心贡献者之一说很好:CocoaPods回购缓存大约每30分钟更新一次,这通常足够频繁,以至于只错过了对Specs回购的最后6次推送。

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



0

我也面临着同样的问题。我只能通过从终端访问两个命令来解决它。

sudo gem卸载nanaimo

然后

sudo gem install nanaimo

希望如此会有所帮助。



0

对我来说,以下命令解决了这个问题

从Mac移除cocoapods

 sudo gem uninstall cocoapods

在Mac上安装cocoapods

sudo gem install cocoapods


0
  • 更新红宝石和椰子。
  • 检查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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.