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.


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


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í.


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


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.


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

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

8

Esto funcionó para mí:

  1. Eliminar Podfile.lock
  2. correr pod install

7

Simplemente actualice cocoapods: sudo gem install cocoapods


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

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



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.


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


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

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 git@github.com: 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í .


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.