Cocoapods:无法连接到GitHub以更新CocoaPods/Specs规格repo

Iva*_* M. 136 xcode ios cocoapods cocoapods-1.0.1

运行时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
Run Code Online (Sandbox Code Playgroud)


使用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>'
Run Code Online (Sandbox Code Playgroud)


找不到任何解决方法,也无法运行该项目.

Ade*_*dem 411

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

$ /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.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
Run Code Online (Sandbox Code Playgroud)

现在,你可以做到

$ pod update
Run Code Online (Sandbox Code Playgroud)

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

  • 请注意,它适用于Ruby 2.5.0 (6认同)
  • 在运行pod repo更新之前还必须执行rm -rf~/.cocoapods / (5认同)
  • 你应该使用一个更新的Ruby版本:"警告:ruby-2.1.0已经过了它的生命周期,现在不受支持.它不再接收错误修复或重要的安全更新." (3认同)
  • 它应该是`export PATH ="$ HOME/.rbenv/shims:$ PATH"`而不是`export PATH ="$ HOME/.rbenv/bin:$ PATH"` (2认同)
  • 是否有理由为您安装版本2.1.0的ruby?为什么不是最新的? (2认同)

Iva*_* M. 135

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

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

pod repo remove master
pod setup
pod install
Run Code Online (Sandbox Code Playgroud)

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

为什么它最初无法连接到Github是超出我的.

  • 改变ssh键后发生在我身上.作为可能的原因之一. (5认同)

Mar*_*ars 51

你可以试试这个:

$sudo rm -fr ~/.cocoapods/repos/master
$pod setup
$pod install
Run Code Online (Sandbox Code Playgroud)

但在我的情况下,我不得不:

  • 删除Podfile.lock然后

  • $pod install


Myk*_*los 43

CocoaPods问题中可以找到类似于MaxAdem的另一个解决方案:

brew install ruby
sudo gem install cocoapods
Run Code Online (Sandbox Code Playgroud)

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

ruby --version
which ruby
Run Code Online (Sandbox Code Playgroud)

应该用 /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,这是一个很好的解决方案.

  • 没有其他解决方案有效,这样做.更新到最新的Ruby和最新的CocoaPods.谢谢. (2认同)

nov*_*ven 22

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

cd ~/.cocoapods/repos/master
git pull
Run Code Online (Sandbox Code Playgroud)

  • 我也得到了离线/ github错误的事情,这是有效的.我有点犹豫要卸载pods. (2认同)

Nag*_*jun 14

这就像魔术一样

$sudo rm -fr ~/.cocoapods/repos/master
$pod setup
$pod install
Run Code Online (Sandbox Code Playgroud)

除此以外

$pod setup
Ctrl +C
cd ~/.cocoapods/repos 
$git clone --depth 1 https://github.com/CocoaPods/Specs.git master
Run Code Online (Sandbox Code Playgroud)


小智 7

只需更新cocoapods: sudo gem install cocoapods


Max*_*Max 7

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

brew install openssl
brew upgrade openssl
brew install ruby
brew link --overwrite ruby
Run Code Online (Sandbox Code Playgroud)

最后,确保你没有你的PATH变量设置有/usr/local/bin $PATH.您的PATH导出~/.bash_profile应该类似于:

export PATH=/usr/local/bin:$PATH
Run Code Online (Sandbox Code Playgroud)


Ham*_*med 7

这对我有用:

  1. 去掉 Podfile.lock
  2. pod install