Cocoapods: no se pudo conectar a GitHub para actualizar el repositorio de especificaciones de CocoaPods / Specs

136

Al ejecutar pod repo updatese genera el siguiente error:

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


Usando cocoapods 1.0.1

También soy consciente de esto: Límite de especificación de repositorio de especificaciones maestro post-mortem .


Agregar el indicador --verbose a la llamada muestra la pila de llamadas de 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>'


No puedo encontrar ninguna forma de solucionar esto y no puedo ejecutar el proyecto.

Ivan M.
fuente
1
Consulte github.com/CocoaPods/CocoaPods/issues/… , está relacionado con la versión anterior de Ruby
vikramvi

Respuestas:

415

Uno de los principales problemas son los "estándares criptográficos débiles eliminados" después de febrero de 2018.

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

Para resolver esto, primero debe actualizar openssl, luego ruby, luego 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

ahora puedes hacer

$ pod update

enlace fuente: https://qiita.com/satoshi-iwaki/items/ed2c267127dcc80baa21

Adem
fuente
2
debería ser export PATH="$HOME/.rbenv/shims:$PATH"y noexport PATH="$HOME/.rbenv/bin:$PATH"
kambala
2
¿Hay alguna razón por la que está instalando la versión 2.1.0 de ruby? ¿Por qué no lo último?
derickito
1
Seguí este consejo hasta la pulsación de tecla, junto con cualquier otra respuesta sugerida en este hilo ... sin éxito. He volado el repositorio de Cocoapods tantas veces. ¿Alguna posibilidad remota o ideas locas por ahí?
Nick Schneble
3
Debería usar una versión más nueva de Ruby debido a esto: "ADVERTENCIA: ruby-2.1.0 ha pasado su fin de vida y ahora no es compatible. Ya no recibe correcciones de errores o actualizaciones críticas de seguridad".
jomafer
55
También tuve que hacer rm -rf ~ / .cocoapods / antes de ejecutar la actualización del repositorio de pod
rustycode el
136

Finalmente logró resolverlo eliminando ./cocoapods/repos/mastery ejecutando pod install.

La solución más formal probablemente sería así:

pod repo remove master
pod setup
pod install

Si pod installfalla después de realizar los dos primeros pasos, es posible que deba eliminar su Podfile.lock.

Por qué inicialmente no se pudo conectar a Github está más allá de mí.

Ivan M.
fuente
55
Me pasó después de cambiar las teclas ssh. Como una de las posibles razones.
Squatch
1
Hice los 3 pasos, pero aún así se muestra [!] No se pudo conectar a GitHub para actualizar el repositorio de especificaciones de CocoaPods / Specs. Compruebe si está desconectado o si GitHub no funciona
Ankit Kumar Gupta
¡eliminar el archivo "Podfile.lock" y luego ejecutar "pod install" funcionó para mí! Gracias
programador
51

Puedes probar esto:

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

pero en mi caso tuve que:

  • elimine el Podfile.lock y luego

  • $pod install

Marte
fuente
43

Otra solución similar a la de Max y Adem en este hilo se encuentra en un problema de CocoaPods :

brew install ruby
sudo gem install cocoapods

Verifique que está utilizando el último y correcto Ruby con:

ruby --version
which ruby

Debería estar usando /usr/local/bin/ruby

Motivo: Resulta que Github se actualizó para admitir solo TLS 1.2 el 22 de febrero. Las versiones anteriores de MacOS antes de High Sierra vienen preinstaladas con Ruby 2.0. Esta versión utiliza OpenSSL 0.9.8 que "fallará con servidores que solo admitan TLS 1.2".

La actualización al último Ruby (2.5) y al último CocoaPods (1.4) me arregló esto sin tener que hacer nada con openssl (Ruby actualiza openssl). Esta es una buena solución si aún no desea actualizar a High Sierra.

Mykaelos
fuente
2
Ninguna de las otras soluciones funcionó, esto funcionó. Actualización al último Ruby y a los últimos CocoaPods. Gracias.
Sam Bing
1
Esto no me lo solucionó, pero voté por la explicación de fondo.
xdeleon
Encontré este problema al empujar un podspec. Esto realmente ayuda!
R0CKSTAR
Detalle importante: tenía CocoaPods instalado a través de brew. En ese caso, actualizar Ruby y openssl no fue suficiente. Tuve que desinstalar CocoaPods y luego reinstalarlo gemcomo se muestra en esta respuesta.
Erik Doernenburg el
22

También me encontré con el mismo problema. En mi escena, usé un repositorio espejo (alojado en otro lugar) de especificaciones de cocoapods en github. Cuando actualicé el repositorio de especificaciones, ¡funcionó!

cd ~/.cocoapods/repos/master
git pull
noveleven
fuente
2
Estaba recibiendo el error de desconexión / github down también y esto es lo que funcionó. Estaba un poco indeciso para desinstalar pods.
Ethan Parker
Esta respuesta realmente funcionó para mí. Pasé más de 2 horas. Muchas gracias.
Hiren Patel
Esta respuesta en realidad aborda la causa con una solución en lugar de un hacky eliminando la carpeta que fuerza un clon de git.
NoodleOfDeath
14

Esto funcionó como magia

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

De otra manera

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

Esto funcionó para mí:

  1. Eliminar Podfile.lock
  2. correr pod install
Hamed
fuente
7

Simplemente actualice cocoapods: sudo gem install cocoapods

Grifas
fuente
7

Una solución un poco más simple de Adem's que no usa rbenv:

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

Finalmente, asegúrese de no tener su PATHvariable establecida para tener /usr/local/bin después $PATH . Su PATHexportación en ~/.bash_profiledebería ser similar a esto:

export PATH=/usr/local/bin:$PATH
Max
fuente
1
Esto también fue suficiente para mí. Tenga en cuenta que aún necesita volver a instalar cocoapods ejecutándose gem install cocoapodsya que cada rubí tiene su propia ubicación de gemas. Por cierto, no hay necesidad de ejecutar el brew install opensslpaso ya que es una dependencia de ruby ​​de todos modos.
Sagi Iltus
Realmente me ayudó, gracias! Aunque tuve que reiniciar Terminal después de cambiar el archivo ~ / .bash_profile.
joliejuly
2

Si alguien tiene estos problemas en Circle CI, estuve luchando con esto por un día casi.

Al final, creo que la mejor manera es usar su solución provista para descargar de sus servidores.

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

Desde este enlace, puede ver que uno de los principales contribuyentes de cocoapods dice que está bien: el caché de repositorios de CocoaPods se actualiza aproximadamente cada 30 minutos, lo que suele ser lo suficientemente frecuente como para perder solo los últimos 6 empujones al repositorio de especificaciones.

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

Kristaps Grinbergs
fuente
0

Lo siguiente que hice en la Terminal:

  1. instalar brew openssl

    si no tienes cerveza casera:

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

    y repetir p.1

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

  3. versión openssl

    Salida: OpenSSL 1.0.2n 7 de diciembre de 2017

  4. actualización de pod

Nosov Pavel
fuente
0

También estaba enfrentando el mismo problema. Lo resolví solo accediendo a dos comandos desde la terminal.

sudo gem desinstalar nanaimo

y entonces

sudo gem instalar nanaimo

Espero que sea de ayuda.

Raj Joshi
fuente
0
  1. Retire todo el paquete de cocoapods. Consulte aquí para obtener información sobre cómo hacer esto.

  2. Luego reinstale cocoapods. $ sudo gem install cocoapods

dijo altintop
fuente
0

Para mí, los siguientes comandos solucionaron el problema

Eliminar cocoapods de mac

 sudo gem uninstall cocoapods

Instalar cocoapods en mac

sudo gem install cocoapods
Durai Amuthan.H
fuente
0

Cualquiera que se enfrente a un problema similar en el que el control remoto se cuelgue prematuramente, en su lugar, sshclone el repositorio.

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

Para usar SSH para clonar un repositorio de GitHub, debe tener una cuenta de GitHub y tener sus claves SSH asociadas.

Sigue su documentación aquí .

Anietie James
fuente
0
  • Actualización de rubí y cocoapods.
  • compruebe la versión de rubí en el env de cocoapods.

utilizar

pod env

ingrese la descripción de la imagen aquí

rbenv global x.x.x
ruby -v

Cambiar la versión de ruby. Si no funciona, mira este rbenv que no cambia la versión de ruby

compruebe la versión de rubí en la envoltura de cocoapods. Si no ha cambiado,

which pod

asegúrese de que su ruta de pod es /usr/local/bin/pod, si no

export PATH=/usr/local/bin:$PATH
Código Sep
fuente