Cocoapods: falha ao conectar-se ao GitHub para atualizar o repositório de especificações CocoaPods / Specs


136

Ao executar, pod repo updateo seguinte erro é gerado:

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

Também estou ciente disso: a taxa mestre de recompra de especificações limitando post mortem .


Adicionar o sinalizador --verbose à chamada mostra a pilha de chamadas em 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>'


Não é possível encontrar nenhuma maneira de solucionar isso e não pode executar o projeto.


1
Consulte github.com/CocoaPods/CocoaPods/issues/... , está relacionada com a versão mais antiga do rubi
vikramvi

Respostas:


415

Um dos principais problemas são "padrões criptográficos fracos removidos" após fevereiro de 2018.

Aqui está uma observação: https://github.com/blog/2507-weak-cryptographic-standards-removed

Para resolver isso, primeiro você precisa atualizar o openssl, depois o ruby ​​e o 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

agora você pode fazer

$ pod update

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


2
que deveria ser export PATH="$HOME/.rbenv/shims:$PATH"e nãoexport PATH="$HOME/.rbenv/bin:$PATH"
kambala

2
Há alguma razão para a instalação da versão 2.1.0 do ruby? Por que não o mais recente?
Derickito 25/02

1
Eu segui esse conselho até o pressionamento de tecla, juntamente com todas as outras respostas sugeridas neste tópico ... sem sucesso. Afastei o repositório Cocoapods tantas vezes. Alguma chance ou idéias malucas por aí?
22418 Nick Schneble

3
Você deve usar uma versão mais recente do Ruby por causa disso: "AVISO: o ruby-2.1.0 passou do fim da vida útil e agora não é suportado. Ele não recebe mais correções de bugs ou atualizações críticas de segurança".
jomafer

5
Também tinha que fazer rm -rf ~ / .cocoapods / antes de executar atualização pod repo
rustycode

136

Finalmente conseguiu resolvê-lo, excluindo ./cocoapods/repos/mastere executando pod install.

A solução mais formal provavelmente seria assim:

pod repo remove master
pod setup
pod install

Se pod installfalhar após executar as duas primeiras etapas, pode ser necessário excluir sua Podfile.lock.

Por que ele inicialmente falhou ao se conectar ao Github está além de mim.


5
Aconteceu comigo depois de alterar as teclas ssh. Como uma das possíveis razões.
Squatch 24/02

1
Eu fiz todo os 3 passos, mas ainda mostra Falha ao conectar ao GitHub para atualizar os CocoaPods / Specs especificações repo - Por favor, verifique se você está offline, ou que GitHub é baixo [!]
Ankit Kumar Gupta

excluir o arquivo "Podfile.lock" e executar a "instalação do pod" funcionou para mim! Obrigado
programador

51

Você pode tentar isso:

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

mas no meu caso eu tive que:

  • exclua o Podfile.lock e, em seguida,

  • $pod install


43

Uma outra solução semelhante à de Max e Adem neste segmento é encontrada em um problema do CocoaPods :

brew install ruby
sudo gem install cocoapods

Verifique se você está usando o Ruby mais recente e correto com:

ruby --version
which ruby

Deveria estar usando /usr/local/bin/ruby

Razão: Acontece que o Github foi atualizado para suportar apenas o TLS 1.2 em 22 de fevereiro. As versões mais antigas do MacOS antes do High Sierra vêm pré-instaladas com o Ruby 2.0. Esta versão usa o OpenSSL 0.9.8, que "falhará com os servidores que suportam apenas o TLS 1.2".

A atualização para o Ruby (2.5) e o CocoaPods (1.4) mais recentes corrigiu isso para mim sem ter que fazer nada com o openssl (o Ruby atualiza o openssl). Esta é uma boa solução se você ainda não deseja atualizar para o High Sierra.


2
Nenhuma das outras soluções funcionou, isso funcionou. Atualizando para o Ruby mais recente e para os CocoaPods mais recentes. Obrigado.
Sam Bing

1
Isso não resolveu o problema para mim, mas votei na explicação do plano de fundo.
Xdeleon

Encontrei esse problema ao pressionar um podspec. Isso realmente ajuda!
R0CKSTAR

Detalhe importante: eu tinha o CocoaPods instalado via brew. Nesse caso, atualizar o Ruby e o openssl não era suficiente. Eu tive que desinstalar o CocoaPods e reinstalá-lo via, gemcomo mostrado nesta resposta.
Erik Doernenburg 04/04/19

22

Eu também encontrei o mesmo problema. Na minha cena, usei um repositório de espelho (hospedado em outro lugar) de especificações de cocoapods no github. Quando atualizei o repositório de especificações, funcionou!

cd ~/.cocoapods/repos/master
git pull

2
Eu estava recebendo a coisa de erro off-line / github down também e foi isso que funcionou. Eu estava um pouco hesitante em desinstalar pods.
Ethan Parker

Esta resposta realmente funcionou para mim. Passei mais de 2 horas. Muito obrigado.
precisa

Esta resposta realmente resolve a causa com uma solução e não com um hacky, excluindo a pasta que força um clone do git.
NoodleOfDeath

14

Isso funcionou como mágica

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

De outra forma

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

8

Isso funcionou para mim:

  1. Remover Podfile.lock
  2. Corre pod install

7

Basta atualizar os cocoapods: sudo gem install cocoapods


7

Uma solução um pouco mais simples da Adem que não usa rbenv:

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

Por fim, verifique se você não tem sua PATHvariável definida para ter /usr/local/bin depois $PATH . Sua PATHexportação ~/.bash_profiledeve ser semelhante a esta:

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

1
Isso também foi o suficiente para mim. Observe que você ainda precisa reinstalar os cocoapods executando, gem install cocoapodspois cada rubi tem sua própria localização de gema. BTW, não há necessidade de executar a brew install openssletapa, pois é uma dependência do ruby ​​de qualquer maneira.
Sagi Iltus 27/02/19

Isso realmente me ajudou, obrigado! Embora eu tenha que reiniciar o Terminal depois de alterar o arquivo ~ / .bash_profile.
joliejuly

2

Se alguém tem esses problemas no Circle CI, eu estou lutando com isso há quase um dia.

No final, acho que a melhor maneira é usar a solução fornecida para fazer o download em seus servidores.

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

Nesse link, você pode ver que um dos principais contribuintes do cocoapods diz que está bem: O cache do repositório CocoaPods é atualizado aproximadamente a cada 30 minutos, o que geralmente é frequente o suficiente para perder apenas os últimos 6 envios para o repositório Specs.

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



0

Eu também estava enfrentando o mesmo problema. Eu o resolvi apenas acessando dois comandos do terminal.

desinstalar suana gem nanaimo

e depois

sudo gem install nanaimo

Espero que isso ajude.


0
  1. Remova todos os pacotes de cocoapods. Veja aqui para obter informações sobre como fazer isso.

  2. Em seguida, reinstale os cocoapods. $ sudo gem install cocoapods


0

Para mim, os comandos abaixo corrigiram o problema

Remoção de cocoapods do mac

 sudo gem uninstall cocoapods

Instalando cocoapods no mac

sudo gem install cocoapods

0

Qualquer pessoa que enfrente um problema semelhante em que o controle remoto seja desligado prematuramente, use sshpara clonar o repositório.

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

Para usar o SSH para clonar um repositório GitHub, você precisa ter uma conta GitHub e ter suas chaves SSH associadas a ela.

Siga a documentação deles aqui .


0
  • atualizar ruby ​​e cocoapods.
  • verifique a versão ruby ​​no env cocoapods.

usar

pod env

insira a descrição da imagem aqui

rbenv global x.x.x
ruby -v

alterar versão ruby. Se não estiver funcionando, assista a esta rbenv não alterando a versão ruby

verifique a versão ruby ​​no env cocoapods. Se não for alterado,

which pod

verifique se o caminho do seu pod é /usr/local/bin/pod, se não

export PATH=/usr/local/bin:$PATH
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.