Cocoapods: nie udało się połączyć z GitHub w celu zaktualizowania repozytorium specyfikacji CocoaPods / Specs


136

Podczas uruchamiania pod repo updategenerowany jest następujący błąd:

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


Korzystanie z cocoapods 1.0.1

Jestem również tego świadomy: ograniczenie szybkości pośmiertnych master spec-repo .


Dodanie flagi --verbose do wywołania pokazuje stos wywołań 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>'


Nie mogę znaleźć sposobu na obejście tego problemu i nie można uruchomić projektu.


1
Zapoznaj się z github.com/CocoaPods/CocoaPods/issues/… , jest to związane ze starszą wersją Ruby
vikramvi

Odpowiedzi:


415

Jednym z głównych problemów jest „usunięcie słabych standardów kryptograficznych” po lutym 2018 roku.

Tutaj uwaga: https://github.com/blog/2507-weak-cryptographic-standards-removed

Aby rozwiązać ten problem, musisz najpierw zaktualizować openssl, potem ruby, a potem 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

teraz możesz to zrobić

$ pod update

link do źródła: https://qiita.com/satoshi-iwaki/items/ed2c267127dcc80baa21


2
powinno być, export PATH="$HOME/.rbenv/shims:$PATH"a nieexport PATH="$HOME/.rbenv/bin:$PATH"
kambala

2
Czy istnieje powód, dla którego instalujesz wersję 2.1.0 programu Ruby? Dlaczego nie najnowsza?
derickito

1
Postępowałem zgodnie z tą radą co do naciśnięcia klawisza, wraz z każdą inną sugerowaną odpowiedzią w tym wątku ... bezskutecznie. Wiele razy zdmuchnąłem repozytorium Cocoapods. Jakieś długie ujęcia lub szalone pomysły?
Nick Schneble,

3
Powinieneś użyć nowszej wersji Rubiego z tego powodu: „OSTRZEŻENIE: Ruby-2.1.0 minął już swój koniec i nie jest już obsługiwany. Nie otrzymuje już poprawek ani krytycznych aktualizacji zabezpieczeń”.
jomafer

5
Musiałem też zrobić rm -rf ~ / .cocoapods / przed uruchomieniem aktualizacji repozytorium pod
rustycode

136

Wreszcie udało się go rozwiązać, usuwając ./cocoapods/repos/masteri uruchamiając pod install.

Bardziej formalne rozwiązanie prawdopodobnie wyglądałoby tak:

pod repo remove master
pod setup
pod install

Jeśli pod installnie powiedzie się po wykonaniu dwóch pierwszych kroków, może być konieczne usunięcie pliku Podfile.lock.

Dlaczego początkowo nie udało się połączyć z Githubem, jest poza mną.


5
Zdarzyło mi się to po zmianie kluczy ssh. Jako jeden z możliwych powodów.
Squatch

1
Wykonałem wszystkie 3 kroki, ale nadal widać [!] Nie udało się połączyć z GitHubem, aby zaktualizować repozytorium specyfikacji CocoaPods / Specs - Sprawdź, czy jesteś offline lub GitHub nie działa
Ankit Kumar Gupta

usunięcie pliku "Podfile.lock", a następnie wykonanie "pod install" zadziałało! Dzięki
programista

51

Możesz spróbować tego:

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

ale w moim przypadku musiałem:

  • usuń plik Podfile.lock, a następnie

  • $pod install


43

Inne rozwiązanie podobne do Maxa i Adema w tym wątku znajduje się w numerze CocoaPods :

brew install ruby
sudo gem install cocoapods

Sprawdź, czy używasz najnowszego i poprawnego Rubiego z:

ruby --version
which ruby

Powinien używać /usr/local/bin/ruby

Powód: Okazuje się, że Github został zaktualizowany do obsługi TLS 1.2 22 lutego. Starsze wersje MacOS przed High Sierra są dostarczane z preinstalowanym Ruby 2.0. Ta wersja korzysta z OpenSSL 0.9.8, co „zawiedzie z serwerami obsługującymi tylko TLS 1.2”.

Aktualizacja do najnowszego Rubiego (2.5) i najnowszego CocoaPods (1.4) naprawiła ten problem bez konieczności robienia czegokolwiek z openssl (aktualizacje Ruby openssl). To dobre rozwiązanie, jeśli nie chcesz jeszcze aktualizować do High Sierra.


2
Żadne z innych rozwiązań nie zadziałało. Aktualizacja do najnowszego Rubiego i najnowszych CocoaPods. Dziękuję Ci.
Sam Bing

1
To nie rozwiązało problemu, ale głosowałem za wyjaśnieniem tła.
xdeleon

Spotkałem ten problem podczas pchania podspec. To naprawdę pomaga!
R0CKSTAR

Ważny szczegół: zainstalowałem CocoaPods przez napar. W takim przypadku aktualizacja Rubiego i openssl nie wystarczyła. Musiałem odinstalować CocoaPods, a następnie zainstalować go ponownie, gemjak pokazano w tej odpowiedzi.
Erik Doernenburg

22

Napotkałem też ten sam problem. W mojej scenie użyłem repozytorium lustrzanego (hostowanego w innym miejscu) specyfikacji cocoapods na github. Kiedy zaktualizowałem repozytorium specyfikacji, zadziałało!

cd ~/.cocoapods/repos/master
git pull

2
Otrzymałem również błąd offline / github down i to właśnie zadziałało. Trochę się wahałem przed odinstalowaniem strąków.
Ethan Parker

Ta odpowiedź faktycznie zadziałała dla mnie. Spędziłem ponad 2 godziny. Wielkie dzięki.
Hiren Patel

Ta odpowiedź faktycznie rozwiązuje przyczynę za pomocą rozwiązania, a nie hakera, usuwając folder, który wymusza klon gita.
NoodleOfDeath

14

To działało jak magia

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

Inaczej

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

8

To zadziałało dla mnie:

  1. Usunąć Podfile.lock
  2. Biegać pod install


7

Nieco prostsze rozwiązanie firmy Adem, które nie używa rbenv:

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

Na koniec upewnij się, że nie masz PATHustawionej zmiennej na /usr/local/bin after $PATH . Twój PATHeksport ~/.bash_profilepowinien wyglądać podobnie do tego:

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

1
To też mi wystarczyło. Zauważ, że nadal musisz ponownie zainstalować cocoapods, uruchamiając, gem install cocoapodsponieważ każdy rubin ma swoją własną lokalizację klejnotów. Przy okazji, nie ma potrzeby uruchamiania brew install opensslkroku, ponieważ i tak jest to zależność od ruby.
Sagi Iltus

Naprawdę mi pomogło, dzięki! Chociaż musiałem ponownie uruchomić Terminal po zmianie pliku ~ / .bash_profile.
joliejuly

2

Jeśli ktoś ma takie problemy na Circle CI, to walczyłem z tym prawie dzień.

Ostatecznie myślę, że najlepszym sposobem jest użycie dostarczonego rozwiązania do pobierania z ich serwerów.

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

Z tego linku widać, że jeden z głównych współpracowników cocoapods mówi, że wszystko jest w porządku: pamięć podręczna repozytorium CocoaPods jest aktualizowana mniej więcej co 30 minut, co jest zwykle wystarczająco częste, aby przegapić tylko ostatnie 6 wypchnięć do repozytorium Specs.

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



0

Miałem też ten sam problem. Rozwiązałem to tylko poprzez dostęp do dwóch poleceń z terminala.

sudo gem odinstaluj nanaimo

i wtedy

sudo gem zainstaluj nanaimo

Mam nadzieję, że to pomoże.



0

Dla mnie poniższe polecenia rozwiązały problem

Usuwanie cocoapods z mac

 sudo gem uninstall cocoapods

Instalowanie cocoapods na mac

sudo gem install cocoapods

0

Każdy, kto boryka się z podobnym problemem, w którym zdalne zawieszanie się przedwcześnie, sshzamiast tego użyj do sklonowania repozytorium.

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

Aby użyć SSH do sklonowania repozytorium GitHub, musisz mieć konto GitHub i skojarzone z nim klucze SSH.

Postępuj zgodnie z ich dokumentacją tutaj .


0
  • zaktualizuj ruby ​​i cocoapods.
  • sprawdź wersję ruby ​​w cocoapods env.

posługiwać się

pod env

wprowadź opis obrazu tutaj

rbenv global x.x.x
ruby -v

zmień wersję ruby. Jeśli nie działa, zobacz, jak rbenv nie zmienia wersji ruby

sprawdź wersję ruby ​​w cocoapods env. Jeśli nie został zmieniony,

which pod

upewnij się, że ścieżka do kapsuły jest /usr/local/bin/pod, jeśli nie

export PATH=/usr/local/bin:$PATH
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.