web-dev-qa-db-ja.com

Cocoapods:CocoaPods / Specs specリポジトリを更新するためのGitHubへの接続に失敗しました

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>'


これを回避する方法が見つからず、プロジェクトを実行できません。

135
Ivan M.

大きな問題の1つは、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

今、あなたはできる

$ pod update

ソースリンク: https://qiita.com/satoshi-iwaki/items/ed2c267127dcc80baa21

411
Adem

最後に./cocoapods/repos/masterを削除してpod installを実行することで解決できました。

より正式な解決策はおそらく以下のようになるでしょう。

pod repo remove master
pod setup
pod install

最初の2つの手順を実行してもpod installが失敗した場合は、Podfile.lockを削除する必要があります。

それが最初にGithubに接続できなかった理由は、私を超えています。

133
Ivan M.

これを試すことができます:

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

しかし私の場合は、

  • podfile.lockを削除してから

  • $pod install

51
Mars

このスレッドの MaxAdem に似た他の解決策は CocoaPod問題

brew install Ruby
Sudo gem install cocoapods

最新で正しいRubyを使っていることを確認してください:

Ruby --version
which Ruby

/usr/local/bin/Rubyを使うべきです

理由:2月22日、 Githubが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にアップデートしたくない場合、これは良い解決策です。

42
Mykaelos

私も同じ問題に遭遇しました。私のシーンでは、私はgithubのcocoapods仕様のミラーレポ(他の場所でホストされている)を使用しました。私がスペックレポを更新したとき、それはうまくいった!

cd ~/.cocoapods/repos/master
git pull
22
noveleven

これは魔法のように働いた

$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
14
Nagarjun

Cocoapodを更新するだけです:Sudo gem install cocoapods

7
Grifas

Rdemvを使用しない、Ademのものより少し簡単な解決策:

brew install openssl
brew upgrade openssl
brew install Ruby
brew link --overwrite Ruby

最後に、PATH変数に/usr/local/bin after $PATHを設定しないでください。 ~/.bash_profileへのPATHのエクスポートは次のようになります。

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

これは私のために働いた:

  1. Podfile.lockを削除
  2. pod installを実行
6
Hamed

誰かがCircle CIでこれらの問題を抱えているなら、私は1日ほとんどこれに苦労していました。

結局私は最善の方法は彼らのサーバーからダウンロードするために彼らの提供された解決策を使うことであると思います。

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

このリンクから、cocoapodsコアコントリビュータの1人がそれでいいと言っていることがわかります。CocoaPodsリポジトリキャッシュはおよそ30分ごとに更新されます。これは通常、Specsリポジトリへの最後の6回のプッシュを見逃すのに十分な頻度です。

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

2

私はターミナルで次にしました:

  1. bREWインストールopenssl

    自家製ビールがない場合

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

    そしてp.1を繰り返す

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

  3. opensslバージョン

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

  4. ポッドアップデート

0
Nosov Pavel
  1. Cocoapodsパッケージをすべて削除してください。 これを行う方法についてはこちら を参照してください。

  2. それからcocoapodsを再インストールしてください。 $ Sudo gem install cocoapods

0
said altintop

私も同じ問題に直面していました。端末から2つのコマンドにアクセスするだけで解決しました。

Sudo gemアンインストールnanaimo

その後

Sudo gem install nanaimo

それが役立つように願っています。

0
Raj Joshi

私にとっては、以下のコマンドで問題が解決しました

macからのcocoapodsの削除

 Sudo gem uninstall cocoapods

macへのcocoapodのインストール

Sudo gem install cocoapods
0
Durai Amuthan.H

リモートが時期尚早に電話を切るという同様の問題に直面している人は誰でも、代わりにリポジトリを複製するためにsshを使用してください。

git clone [email protected]:CocoaPods/Specs.gitマスター。

SSHを使用してGitHubリポジトリを複製するには、GitHubアカウントを持ち、それにSSHキーを関連付ける必要があります。

こちらのドキュメントに従ってください

0
Anietie James