Cocoapods: impossibile connettersi a GitHub per aggiornare il repository delle specifiche CocoaPods / Specifiche


136

Quando si esegue pod repo updateil seguente errore viene generato:

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


Uso dei cocoapodi 1.0.1

Sono anche consapevole di questo: la velocità del master spec-repo che limita post-mortem .


L'aggiunta del flag --verbose alla chiamata mostra lo stack di chiamate 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>'


Non riesco a trovare un modo per risolvere il problema e non è possibile eseguire il progetto.


1
Fare riferimento a github.com/CocoaPods/CocoaPods/issues/… , è correlato alla versione precedente di Ruby
vikramvi

Risposte:


415

Uno dei maggiori problemi è "la rimozione di standard crittografici deboli" dopo il 2018 febbraio.

Ecco una nota: https://github.com/blog/2507-weak-cryptographic-standards-removed

Per risolvere questo problema, prima devi aggiornare openssl, quindi ruby, quindi 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

ora puoi farlo

$ pod update

link alla fonte: https://qiita.com/satoshi-iwaki/items/ed2c267127dcc80baa21


2
dovrebbe essere export PATH="$HOME/.rbenv/shims:$PATH"e nonexport PATH="$HOME/.rbenv/bin:$PATH"
kambala,

2
C'è qualche motivo per cui stai installando la versione 2.1.0 di ruby? Perché non l'ultimo?
derickito,

1
Ho seguito questo consiglio alla sequenza di tasti, insieme a tutte le altre risposte suggerite in questo thread ... senza risultati. Ho spazzato via il repository Cocoapods così tante volte. Qualche scatto lungo o idee folli là fuori?
Nick Schneble,

3
È necessario utilizzare una versione più recente di Ruby per questo: "ATTENZIONE: ruby-2.1.0 è scaduto e non è più supportato. Non riceve più correzioni di bug o aggiornamenti critici di sicurezza."
Jomafer,

5
Inoltre ho dovuto fare rm -rf ~ / .cocoapods / prima di eseguire l'aggiornamento del repository pod
rustycode il

136

Finalmente riuscito a risolverlo eliminando ./cocoapods/repos/mastered eseguendo pod install.

La soluzione più formale probabilmente andrebbe così:

pod repo remove master
pod setup
pod install

Se pod installfallisce dopo aver eseguito i primi due passaggi, potrebbe essere necessario eliminare il tuoPodfile.lock .

Perché inizialmente non è riuscito a connettersi a Github è oltre me.


5
Mi è successo dopo aver cambiato i tasti SSH. Come uno dei possibili motivi.
Squatch

1
Ho eseguito tutti e 3 i passaggi ma mostra ancora [!] Impossibile connettersi a GitHub per aggiornare il repository delle specifiche CocoaPods / Specifiche - Verificare se non si è in linea o se GitHub non funziona
Ankit Kumar Gupta,

eliminare il file "Podfile.lock" e quindi eseguire "pod install" ha funzionato per me! Grazie
programmatore

51

Puoi provare questo:

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

ma nel mio caso ho dovuto:

  • elimina Podfile.lock e quindi

  • $pod install


43

Un'altra soluzione simile a quella di Max e di Adem in questa discussione si trova in un problema di CocoaPods :

brew install ruby
sudo gem install cocoapods

Verifica di utilizzare il Ruby più recente e corretto con:

ruby --version
which ruby

Dovrebbe essere usando /usr/local/bin/ruby

Motivo: risulta che Github si è aggiornato per supportare TLS 1.2 solo il 22 febbraio. Le versioni precedenti di MacOS prima di High Sierra vengono preinstallate con Ruby 2.0. Questa versione utilizza OpenSSL 0.9.8 quale "non funzionerà con server che supportano solo TLS 1.2".

L'aggiornamento all'ultimo Ruby (2.5) e all'ultimo CocoaPods (1.4) mi ha risolto questo problema senza dover fare nulla con openssl (Aggiornamenti di Ruby openssl). Questa è una buona soluzione se non vuoi ancora aggiornare a High Sierra.


2
Nessuna delle altre soluzioni ha funzionato, questo ha funzionato. Aggiornamento all'ultimo Ruby e agli ultimi CocoaPods. Grazie.
Sam Bing,

1
Questo non ha risolto il problema per me, ma ho votato a favore della spiegazione di base.
xdeleon,

Ho riscontrato questo problema quando ho spinto un podspec. Questo aiuta davvero!
R0CKSTAR,

Dettaglio importante: ho installato CocoaPods tramite brew. In quel caso l'aggiornamento di Ruby e openssl non era sufficiente. Ho dovuto disinstallare CocoaPods e reinstallarlo tramite gemcome mostrato in questa risposta.
Erik Doernenburg,

22

Ho riscontrato anche lo stesso problema. Nella mia scena, ho usato un repository mirror (ospitato altrove) di specifiche di cocoapodi su github. Quando ho aggiornato il repository delle specifiche, ha funzionato!

cd ~/.cocoapods/repos/master
git pull

2
Stavo anche rilevando l'errore offline / github e questo è ciò che ha funzionato. Ero un po 'titubante nel disinstallare i pod.
Ethan Parker,

Questa risposta ha funzionato davvero per me. Ho trascorso più di 2 ore. Molte grazie.
Hiren Patel,

Questa risposta risolve effettivamente la causa con una soluzione piuttosto che con un hacky eliminando la cartella che forza un clone git.
NoodleOfDeath

14

Funzionava come per magia

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

Altrimenti

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

8

Questo ha funzionato per me:

  1. Rimuovere Podfile.lock
  2. Correre pod install

7

Basta aggiornare i cocoapods: sudo gem install cocoapods


7

Una soluzione leggermente più semplice di Adem che non utilizza rbenv:

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

Infine, assicurati di non avere la tua PATHvariabile impostata su /usr/local/bin after $PATH . L' PATHesportazione in ~/.bash_profiledovrebbe essere simile a questa:

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

1
Questo è anche quello che mi è bastato. Nota che devi ancora reinstallare i cocoapodi eseguendo gem install cocoapodspoiché ogni rubino ha la sua posizione gemma. A proposito, non è necessario eseguire il brew install opensslpassaggio in quanto è comunque una dipendenza del rubino.
Sagi Iltus,

Mi ha davvero aiutato, grazie! Anche se ho dovuto riavviare Terminal dopo aver modificato il file ~ / .bash_profile.
joliejuly,

2

Se qualcuno ha questi problemi su Circle CI, ho avuto problemi con questo per quasi un giorno.

Alla fine penso che il modo migliore sia usare la soluzione fornita per scaricare dai loro server.

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

Da questo link puoi vedere che uno dei principali collaboratori di cocoapods dice che va bene: la cache del repository CocoaPods viene aggiornata all'incirca ogni 30 minuti, che di solito è abbastanza frequente da perdere solo gli ultimi 6 push al repository Specifiche.

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



0

Stavo anche affrontando lo stesso problema. L'ho risolto solo accedendo a due comandi dal terminale.

sudo gem disinstallare nanaimo

e poi

sudo gem installa nanaimo

Spero che sia di aiuto.


0
  1. Rimuovi tutto il pacchetto di cocoapods. Vedi qui per informazioni su come farlo.

  2. Quindi reinstallare i cocoapodi. $ sudo gem install cocoapods


0

Per me i comandi seguenti hanno risolto il problema

Rimozione dei cocoapodi dal mac

 sudo gem uninstall cocoapods

Installazione di cocoapods su mac

sudo gem install cocoapods

0

Chiunque affronti problemi simili in cui il telecomando si blocca prematuramente, utilizzare invece sshper clonare il repository.

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

Per utilizzare SSH per clonare un repository GitHub, è necessario disporre di un account GitHub e associare le chiavi SSH ad esso.

Segui la loro documentazione qui .


0
  • aggiorna rubino e cocoapodi.
  • controlla la versione rubino nell'env cocoapods

uso

pod env

inserisci qui la descrizione dell'immagine

rbenv global x.x.x
ruby -v

cambia versione rubino. Se non funziona, guarda questo rbenv che non cambia la versione ruby

controlla la versione rubino nell'env. cocoapods Se non modificato,

which pod

assicurati che il percorso del pod sia /usr/local/bin/pod, in caso contrario

export PATH=/usr/local/bin:$PATH
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.