140

运行时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

我也知道这一点:Master spec-repo rate limits post-mortem


在调用中添加 --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>'


找不到解决此问题的任何方法,并且无法运行该项目。

4

16 回答 16

420

主要问题之一是 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

于 2018-02-24T10:56:42.093 回答
139

最后设法通过删除./cocoapods/repos/master和运行来解决它pod install

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

pod repo remove master
pod setup
pod install

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

为什么它最初无法连接到 Github 超出了我的理解。

于 2016-08-17T12:04:01.593 回答
52

你可以试试这个:

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

但就我而言,我必须:

  • 删除 Podfile.lock 然后

  • $pod install

于 2017-04-12T01:32:18.230 回答
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,这是一个很好的解决方案。

于 2018-02-27T20:02:08.707 回答
22

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

cd ~/.cocoapods/repos/master
git pull
于 2017-06-01T17:01:41.617 回答
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
于 2017-02-09T11:50:50.310 回答
8

这对我有用:

  1. 消除Podfile.lock
  2. pod install
于 2018-03-14T13:14:04.363 回答
8

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

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
于 2018-02-26T20:17:49.260 回答
7

只需更新 cocoapods:sudo gem install cocoapods

于 2018-02-26T16:25:37.247 回答
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

于 2018-02-27T09:00:36.833 回答
0
  1. 删除所有 cocoapods 包。有关如何执行此操作的信息,请参见此处。

  2. 然后重新安装 cocoapods。$ sudo gem install cocoapods

于 2018-04-02T15:50:53.943 回答
0

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

从 mac 中删除 cocoapods

 sudo gem uninstall cocoapods

在 mac 上安装 cocoapods

sudo gem install cocoapods
于 2018-04-06T10:19:28.547 回答
0

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

sudo gem 卸载 nanaimo

接着

须藤宝石安装纳奈莫

希望它会有所帮助。

于 2018-03-20T04:32:56.490 回答
0

任何遇到远程过早挂断的类似问题的人,都可以使用ssh克隆存储库。

git clone git@github.com:CocoaPods/Specs.git master。

为了使用 SSH 克隆 GitHub 存储库,您需要拥有一个 GitHub 帐户并拥有与之关联的 SSH 密钥。

在此处关注他们的文档

于 2018-05-11T16:28:05.003 回答
0
  • 更新 ruby​​ 和 cocoapods。
  • 检查 cocoapods 环境中的 ruby​​ 版本。

利用

pod env

在此处输入图像描述

rbenv global x.x.x
ruby -v

更改红宝石版本。如果不起作用,请观看此rbenv 不更改 ruby​​ 版本

检查 cocoapods 环境中的 ruby​​ 版本。如果不改变,

which pod

确保您的 pod 路径是/usr/local/bin/pod,如果不是

export PATH=/usr/local/bin:$PATH
于 2020-01-17T03:50:06.667 回答
0

我在终端做了下一个:

  1. 冲泡安装openssl

    如果您没有自制啤酒:

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

    并重复第 1 页

  2. 导出 PATH="/usr/local/opt/openssl/bin:$PATH"

  3. openssl 版本

    输出:OpenSSL 1.0.2n 2017 年 12 月 7 日

  4. 吊舱更新

于 2018-03-15T11:24:30.927 回答