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


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

回答:


415

主要な問題の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

$ /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
rubyのバージョン2.1.0をインストールする理由はありますか?なぜ最新ではないのですか?
derickito 2018

1
このアドバイスをキーストロークまでたどり、このスレッドで提案された他のすべての回答と一緒に...役に立ちませんでした。Cocoapodsレポを何度も吹き飛ばしてしまいました。ロングショットやクレイジーなアイデアはありますか?
Nick Schneble、2018

3
このため、新しいRubyバージョンを使用する必要があります。「警告:ruby-2.1.0はサポート終了となり、現在サポートされていません。バグの修正や重要なセキュリティアップデートは受けられなくなりました。」
jomafer

5
また、ポッドレポ更新を実行する前にrm -rf〜/ .cocoapods /を実行する必要がありました
rustycode

136

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

より正式なソリューションはおそらく次のようになります。

pod repo remove master
pod setup
pod install

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

最初にGithubへの接続に失敗した理由は私を超えています。


5
SSHキーを変更した後、私に起こりました。考えられる理由の1つとして。
スクワッチ2018

1
3つのステップすべてを実行しましたが、それでも[!] GitHubに接続してCocoaPods / Specs仕様リポジトリを更新できません
でし

「Podfile.lock」ファイルを削除してから「pod install」を実行するとうまくいきました。ありがとう
プログラマー

51

あなたはこれを試すことができます:

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

しかし私の場合、私はしなければなりませんでした:

  • Podfile.lockを削除してから

  • $pod install


43

このスレッドMaxAdemに似た別の解決策は、CocoaPodsの問題にあります。

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に更新したくない場合に適したソリューションです。


2
他のソリューションはどれも機能しませんでした。最新のRubyおよび最新のCocoaPodsに更新します。ありがとうございました。
Sam Bing

1
これは私のためにそれを修正しませんでしたが、私は背景の説明に賛成票を投じました。
xdeleon

podspecをプッシュするときにこの問題に遭遇しました。これは本当に役立ちます!
R0CKSTAR 2018

重要な詳細:CocoaPodsをbrew経由でインストールしました。その場合、Rubyとopensslをアップグレードするだけでは不十分でした。CocoaPodsをアンインストールしてからgem、この回答に示すように経由で再インストールする必要がありました。
Erik Doernenburg、

22

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

cd ~/.cocoapods/repos/master
git pull

2
私はオフライン/ githubダウンのエラーも発生していましたが、これが機能しました。私はポッドをアンインストールするのを少しためらっていました。
イーサンパーカー

この答えは実際に私のために働いた。2時間以上過ごしました。どうもありがとう。
Hiren Patel

この回答は実際には、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

8

これは私のために働きました:

  1. 削除する Podfile.lock
  2. 走る pod install


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各ルビーには独自のgemの場所があるため、実行してcocoapodsを再インストールする必要があることに注意してください。ところで、brew install opensslそれはとにかくルビの依存関係であるため、ステップを実行する必要はありません。
Sagi Iltus

本当に助かりました、ありがとう!〜/ .bash_profileファイルを変更した後、ターミナルを再起動する必要がありましたが。
-joliejuly

2

Circle CIで誰かがこれらの問題を抱えている場合、私はほぼ1日間これに苦労していました。

最終的には、提供されているソリューションを使用してサーバーからダウンロードするのが最善の方法だと思います。

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

このリンクから、cocoapodsコアコントリビューターの1人が問題ないと言っていることがわかります。CocoaPodsリポジトリキャッシュは、約30分ごとに更新されます。

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



0

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

sudo gemアンインストールnanaimo

その後

sudo gem install nanaimo

それが役立つことを願っています。



0

私にとっては、以下のコマンドが問題を修正しました

Macからココアポッドを削除する

 sudo gem uninstall cocoapods

MacへのCocoaPodsのインストール

sudo gem install cocoapods

0

リモートが途中でハングアップするような同様の問題に直面している人は、ssh代わりにリポジトリのクローンを作成するために使用します。

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

SSHを使用してGitHubリポジトリのクローンを作成するには、GitHubアカウントがあり、SSHキーが関連付けられている必要があります。

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


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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.