CocoaPods: 未能连接到 GitHub 以更新 CocoaPods/Specs Specs repo

当运行 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>'


无法找到任何方法来解决这个问题,并且无法运行该项目。

72098 次浏览

最终通过删除 ./cocoapods/repos/master并运行 pod install解决了这个问题。

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

pod repo remove master
pod setup
pod install

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

为什么它最初没能连接到 Github,我不明白。

这就像魔法一样

$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

你可以试试这个:

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

但对我来说,我不得不:

  • 删除 Podfile.lock,然后

  • $pod install

我也遇到了同样的问题。在我的场景中,我在 github 上使用了 cocoapods 规格的镜像回购(托管在其他地方)。当我更新规格回购的时候,成功了!

cd ~/.cocoapods/repos/master
git pull

其中一个主要问题是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

只需更新 cocoapods: sudo gem install cocoapods

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

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

最后,确保没有将 PATH变量设置为 /usr/local/bin 之后 $PATH。你在 ~/.bash_profile中的 PATH出口应该类似于下面这样:

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

如果有人在 Circle CI 上有这些问题,我几乎为此挣扎了一天。

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

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

从这个链接你可以看到,cocoapods 的核心贡献者之一说,这是罚款: CocoaPods 回购缓存大约每30分钟更新一次,这通常足以错过最后6次推回 Specs。

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

另一个类似于 麦克斯的亚当的的解决方案是在 可可豆发行中找到的:

brew install ruby
sudo gem install cocoapods

确认您正在使用最新的和正确的 Ruby:

ruby --version
which ruby

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

理由: 事实证明,在 High Sierra 之前的 MacOS 旧版本 Github 在2月22日更新为仅支持 TLS 1.2。已经预装了 Ruby 2.0。这个版本使用 OpenSSL0.9.8,该版本“如果服务器只支持 TLS 1.2,那么它将会失败。”

升级到最新的 Ruby (2.5)和最新的 CocoaPods (1.4)为我解决了这个问题,而不需要使用 openssl (Ruby update openssl)。这是一个很好的解决方案,如果你不想升级到高塞拉利昂还没有。

这对我很有效:

  1. 移除 Podfile.lock
  2. 运行 pod install

我在终点站做了下一个动作:

  1. 酿造,安装

    如果你没有自酿啤酒:

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

    重复第1页

  2. Export PATH = “/usr/local/opt/openssl/bin: $PATH”

  3. Openssl 版本

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

  4. 分离舱更新

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

Sudo gem 卸载 nanaimo

然后

Sudo gem install nanaimo

希望能有所帮助。

  1. 删除所有的 cocoapods 包

  2. 然后重新安装 cocoapods

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

从 Mac 中移除 cocoapods

 sudo gem uninstall cocoapods

在 mac 上安装 cocoapods

sudo gem install cocoapods

任何人面临任何类似的问题,远程挂断过早,使用 ssh克隆回购。

Git 克隆 git@github.com: CocoaPods/Specs.git master。

为了使用 SSH 克隆一个 GitHub 回购,您需要有一个 GitHub 帐户,并将您的 SSH 密钥与之关联。

点击这里查看他们的文档。

  • 更新 Ruby 和 cocoapods。
  • 检查 cocoapods env 中的 Ruby 版本。

使用

pod env

enter image description here

rbenv global x.x.x
ruby -v

更改红宝石版本。如果不工作,请观看此 Rbenv 没有更改 Ruby 版本

检查 cocoapods env 中的 ruby 版本。如果没有更改,

which pod

如果没有,确保你的分离舱路径是 /usr/local/bin/pod

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