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.

Ivan M.
źródło
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

Adem
źródło
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ą.

Ivan M.
źródło
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

Mars
źródło
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.

Mykaelos
źródło
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
powieść nawet
źródło
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
Nagarjun
źródło
8

To zadziałało dla mnie:

  1. Usunąć Podfile.lock
  2. Biegać pod install
Hamed
źródło
7

Po prostu zaktualizuj cocoapods: sudo gem install cocoapods

Grifas
źródło
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
Maks
źródło
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

Kristaps Grinbergs
źródło
0

Następnie zrobiłem w Terminalu:

  1. brew install openssl

    jeśli nie masz domowego naparu:

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

    i powtórz p.1

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

  3. wersja openssl

    Wyjście: OpenSSL 1.0.2n 7 grudnia 2017 r

  4. aktualizacja pod

Nosov Pavel
źródło
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.

Raj Joshi
źródło
0
  1. Usuń cały pakiet cocoapods. Zobacz tutaj, aby dowiedzieć się, jak to zrobić.

  2. Następnie zainstaluj ponownie cocoapods. $ sudo gem install cocoapods

powiedział altintop
źródło
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
Durai Amuthan.H
źródło
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 [email protected]: 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 .

Anietie James
źródło
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
SepCode
źródło