Cocoapods: échec de la connexion à GitHub pour mettre à jour le référentiel de spécifications CocoaPods / Specs

136

Lors de l'exécution, pod repo updatel'erreur suivante est générée:

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


Utilisation des cocoapodes 1.0.1

Je suis également conscient de ceci: Master spec-repo rate limit post-mortem .


L'ajout de l'indicateur --verbose à l'appel montre la pile d'appels 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>'


Impossible de trouver un moyen de contourner ce problème et ne peut pas exécuter le projet.

Ivan M.
la source
1
Reportez-vous à github.com/CocoaPods/CocoaPods/issues/… , il est lié à l'ancienne version de Ruby
vikramvi

Réponses:

415

L'un des principaux problèmes est la suppression des «faibles normes cryptographiques» après février 2018.

Voici une note: https://github.com/blog/2507-weak-cryptographic-standards-removed

Pour résoudre ce problème, vous devez d'abord mettre à jour openssl, puis ruby, puis 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

maintenant tu peux faire

$ pod update

lien source: https://qiita.com/satoshi-iwaki/items/ed2c267127dcc80baa21

Adem
la source
2
ça devrait être export PATH="$HOME/.rbenv/shims:$PATH"et nonexport PATH="$HOME/.rbenv/bin:$PATH"
kambala
2
Y a-t-il une raison pour laquelle vous installez la version 2.1.0 de ruby? Pourquoi pas le dernier?
derickito
1
J'ai suivi ce conseil à la frappe, ainsi que toutes les autres réponses suggérées dans ce fil ... en vain. J'ai époustouflé le repo des Cocoapods tant de fois. Des longs plans ou des idées folles là-bas?
Nick Schneble
3
Vous devez utiliser une version plus récente de Ruby à cause de ceci: "AVERTISSEMENT: ruby-2.1.0 a dépassé sa fin de vie et n'est plus pris en charge. Il ne reçoit plus de correctifs de bogues ou de mises à jour de sécurité critiques."
jomafer le
5
J'ai également dû faire rm -rf ~ / .cocoapods / avant d'exécuter la mise à jour du
dépôt de
136

Enfin réussi à le résoudre en supprimant ./cocoapods/repos/masteret en exécutant pod install.

La solution la plus formelle ressemblerait probablement à ceci:

pod repo remove master
pod setup
pod install

En cas d' pod installéchec après avoir effectué les deux premières étapes, vous devrez peut-être supprimer votrePodfile.lock .

Pourquoi la connexion à Github a-t-elle échoué au départ me dépasse.

Ivan M.
la source
5
Cela m'est arrivé après avoir changé les clés ssh. Comme l'une des raisons possibles.
Squatch
1
J'ai fait toutes les 3 étapes mais cela montre quand même [!] Échec de la connexion à GitHub pour mettre à jour le repo de spécifications CocoaPods / Specs - Veuillez vérifier si vous êtes hors ligne ou que GitHub est en panne
Ankit Kumar Gupta
la suppression du fichier "Podfile.lock" puis l'exécution de "pod install" a fonctionné pour moi! Merci
programmeur
51

Vous pouvez essayer ceci:

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

mais dans mon cas, je devais:

  • supprimez le Podfile.lock puis

  • $pod install

Mars
la source
43

Une autre solution similaire à celle de Max et Adem dans ce fil se trouve dans un problème CocoaPods :

brew install ruby
sudo gem install cocoapods

Vérifiez que vous utilisez le dernier et correct Ruby avec:

ruby --version
which ruby

Devrait utiliser /usr/local/bin/ruby

Raison: Il s'avère que Github a été mis à jour pour ne prendre en charge que TLS 1.2 le 22 février. Les anciennes versions de MacOS avant High Sierra sont préinstallées avec Ruby 2.0. Cette version utilise OpenSSL 0.9.8 qui "échouera avec les serveurs prenant en charge uniquement TLS 1.2".

La mise à jour vers le dernier Ruby (2.5) et le dernier CocoaPods (1.4) a résolu cela pour moi sans avoir à faire quoi que ce soit avec openssl (Ruby updates openssl). C'est une bonne solution si vous ne voulez pas encore mettre à jour vers High Sierra.

Mykaelos
la source
2
Aucune des autres solutions n'a fonctionné, cela a fonctionné. Mise à jour vers le dernier Ruby et les derniers CocoaPods. Je vous remercie.
Sam Bing
1
Cela n'a pas résolu le problème pour moi, mais j'ai voté pour l'explication de fond.
xdeleon
J'ai rencontré ce problème en poussant un podspec. Cela aide vraiment!
R0CKSTAR
Détail important: j'ai fait installer CocoaPods via Brew. Dans ce cas, la mise à niveau de Ruby et openssl n'était pas suffisante. J'ai dû désinstaller CocoaPods, puis le réinstaller via gemcomme indiqué dans cette réponse.
Erik Doernenburg
22

J'ai également rencontré le même problème. Dans ma scène, j'ai utilisé un dépôt miroir (hébergé ailleurs) de spécifications de cocoapods sur github. Quand j'ai mis à jour le référentiel de spécifications, cela a fonctionné!

cd ~/.cocoapods/repos/master
git pull
noveleven
la source
2
J'obtenais également l'erreur hors ligne / github down et c'est ce qui a fonctionné. J'étais un peu hésitant à désinstaller les pods.
Ethan Parker
Cette réponse a fonctionné pour moi. J'ai passé plus de 2 heures. Merci beaucoup.
Hiren Patel
Cette réponse aborde en fait la cause avec une solution plutôt qu'un piratage en supprimant le dossier qui force un clone git.
NoodleOfDeath
14

Cela a fonctionné comme par magie

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

Autrement

$pod setup
Ctrl +C
cd ~/.cocoapods/repos 
$git clone --depth 1 https://github.com/CocoaPods/Specs.git master
Nagarjun
la source
8

Cela a fonctionné pour moi:

  1. Retirer Podfile.lock
  2. Courir pod install
Hamed
la source
7

Mettez simplement à jour les cocoapodes: sudo gem install cocoapods

Grifas
la source
7

Une solution légèrement plus simple d'Adem qui n'utilise pas rbenv:

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

Enfin, assurez-vous que votre PATHvariable n'est pas définie /usr/local/bin après $PATH . Votre PATHexportation ~/.bash_profiledoit ressembler à ceci:

export PATH=/usr/local/bin:$PATH
Max
la source
1
C'est ce qui me suffisait aussi. Notez que vous devez toujours réinstaller les cocoapodes en exécutant gem install cocoapodscar chaque rubis a son propre emplacement de gemme. BTW, il n'est pas nécessaire d'exécuter l' brew install opensslétape car c'est de toute façon une dépendance de ruby.
Sagi Iltus
Cela m'a vraiment aidé, merci! Bien que j'ai dû relancer Terminal après avoir changé le fichier ~ / .bash_profile.
joliejuly
2

Si quelqu'un a ces problèmes sur Circle CI, je me suis débattu avec ça pendant presque un jour.

En fin de compte, je pense que le meilleur moyen est d'utiliser la solution fournie pour télécharger à partir de leurs serveurs.

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

À partir de ce lien, vous pouvez voir que l'un des principaux contributeurs de Cocoapods dit que tout va bien: le cache du repo CocoaPods est mis à jour environ toutes les 30 minutes, ce qui est généralement assez fréquent pour ne manquer que les 6 dernières poussées vers le repo Specs.

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

Kristaps Grinbergs
la source
0

J'ai fait ensuite dans le terminal:

  1. brew installer openssl

    si vous n'avez pas de bière maison:

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

    et répéter p.1

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

  3. version openssl

    Sortie: OpenSSL 1.0.2n 7 décembre 2017

  4. mise à jour du pod

Nosov Pavel
la source
0

J'étais également confronté au même problème. Je l'ai résolu uniquement en accédant à deux commandes depuis le terminal.

sudo gem désinstaller nanaimo

puis

sudo gem installer nanaimo

J'espère que cela aidera.

Raj Joshi
la source
0
  1. Retirez tout le paquet de cocoapodes. Cliquez ici pour savoir comment procéder.

  2. Puis réinstallez les cocoapodes. $ sudo gem install cocoapods

dit altintop
la source
0

Pour moi, les commandes ci-dessous ont résolu le problème

Supprimer les cocoapodes de Mac

 sudo gem uninstall cocoapods

Installer des cocoapodes sur Mac

sudo gem install cocoapods
Durai Amuthan.H
la source
0

Toute personne confrontée à un problème similaire où la télécommande se bloque prématurément, utilisez sshplutôt pour cloner le dépôt.

git clone [email protected]: CocoaPods / Specs.git master.

Pour utiliser SSH pour cloner un dépôt GitHub, vous devez disposer d'un compte GitHub et associer vos clés SSH.

Suivez leur documentation ici .

Anietie James
la source
0
  • mettre à jour le rubis et les cocoapodes.
  • vérifier la version rubis dans les cocoapodes env.

utilisation

pod env

entrez la description de l'image ici

rbenv global x.x.x
ruby -v

changer la version ruby. Si cela ne fonctionne pas, regardez ce rbenv ne change pas la version de ruby

vérifier la version rubis dans les cocoapodes env. Sinon changé,

which pod

assurez-vous que le chemin de votre pod est /usr/local/bin/pod, sinon

export PATH=/usr/local/bin:$PATH
SepCode
la source