Cocoapods: Es konnte keine Verbindung zu GitHub hergestellt werden, um das Repo der CocoaPods / Specs-Spezifikationen zu aktualisieren

136

Beim Ausführen wird pod repo updateder folgende Fehler generiert:

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


Verwendung von Cocoapods 1.0.1

Mir ist auch bewusst: Master Spec-Repo Rate Limit Post-Mortem .


Wenn Sie dem Aufruf das Flag --verbose hinzufügen, wird der Ruby-Aufrufstapel angezeigt:

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


Es kann keine Möglichkeit gefunden werden, dies zu umgehen, und das Projekt kann nicht ausgeführt werden.

Ivan M.
quelle
1
Siehe github.com/CocoaPods/CocoaPods/issues/… , es ist mit der älteren Ruby-Version verwandt
vikramvi

Antworten:

415

Eines der Hauptprobleme sind "schwache kryptografische Standards entfernt" nach Februar 2018.

Hier ein Hinweis: https://github.com/blog/2507-weak-cryptographic-standards-removed

Um dies zu lösen, müssen Sie zuerst openssl, dann ruby ​​und dann cocoapod aktualisieren.

$ 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

Jetzt können Sie tun

$ pod update

Quelllink: https://qiita.com/satoshi-iwaki/items/ed2c267127dcc80baa21

Adem
quelle
2
es sollte sein export PATH="$HOME/.rbenv/shims:$PATH"und nichtexport PATH="$HOME/.rbenv/bin:$PATH"
kambala
2
Gibt es einen Grund, warum Sie Version 2.1.0 von Ruby installieren? Warum nicht das Neueste?
Derickito
1
Ich folgte diesem Rat bis zum Tastendruck, zusammen mit jeder anderen vorgeschlagenen Antwort in diesem Thread ... ohne Erfolg. Ich habe das Cocoapods Repo so oft weggeblasen. Irgendwelche langen Aufnahmen oder verrückte Ideen da draußen?
Nick Schneble
3
Sie sollten aus diesem Grund eine neuere Ruby-Version verwenden: "WARNUNG: Ruby-2.1.0 hat das Ende seiner Lebensdauer überschritten und wird jetzt nicht mehr unterstützt. Es werden keine Fehlerkorrekturen oder kritischen Sicherheitsupdates mehr empfangen."
Jomafer
5
Musste auch rm -rf ~ / .cocoapods / machen, bevor Pod Repo Update ausgeführt wird
Rustycode
136

Endlich gelang es, es durch Löschen ./cocoapods/repos/masterund Ausführen zu lösen pod install.

Die formellere Lösung würde wahrscheinlich so aussehen:

pod repo remove master
pod setup
pod install

Wenn pod installdies nach den ersten beiden Schritten fehlschlägt, müssen Sie möglicherweise Ihre löschen Podfile.lock.

Warum es anfangs nicht möglich war, eine Verbindung zu Github herzustellen, ist mir ein Rätsel.

Ivan M.
quelle
5
Ist mir nach dem Ändern der SSH-Schlüssel passiert. Als einer der möglichen Gründe.
Squatch
1
Ich habe alle 3 Schritte ausgeführt, aber es wird immer noch angezeigt! [!] Fehler beim Herstellen einer Verbindung zu GitHub, um das Repo der CocoaPods / Specs-Spezifikationen zu aktualisieren. - Bitte überprüfen Sie, ob Sie offline sind oder ob GitHub nicht verfügbar ist.
Ankit Kumar Gupta
Das Löschen der Datei "Podfile.lock" und das anschließende Ausführen der "Pod-Installation" hat bei mir funktioniert! Danke
Programmierer
51

Sie können dies versuchen:

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

aber in meinem Fall musste ich:

  • Löschen Sie die Podfile.lock und dann

  • $pod install

Mars
quelle
43

Eine andere Lösung, die der von Max und Adem in diesem Thread ähnelt, ist in einem CocoaPods-Problem enthalten :

brew install ruby
sudo gem install cocoapods

Stellen Sie sicher, dass Sie den neuesten und korrekten Ruby verwenden mit:

ruby --version
which ruby

Sollte verwendet werden /usr/local/bin/ruby

Grund: Es stellt sich heraus, dass Github am 22. Februar aktualisiert wurde, um nur TLS 1.2 zu unterstützen. Ältere Versionen von MacOS vor High Sierra sind mit Ruby 2.0 vorinstalliert. Diese Version verwendet OpenSSL 0.9.8, das "mit Servern fehlschlägt, die nur TLS 1.2 unterstützen".

Das Update auf den neuesten Ruby (2.5) und die neuesten CocoaPods (1.4) hat dies für mich behoben, ohne dass ich etwas mit openssl tun musste (Ruby aktualisiert openssl). Dies ist eine gute Lösung, wenn Sie noch kein Update auf High Sierra durchführen möchten.

Mykaelos
quelle
2
Keine der anderen Lösungen funktionierte, dies tat. Aktualisierung auf den neuesten Ruby und auf die neuesten CocoaPods. Danke dir.
Sam Bing
1
Das hat es für mich nicht behoben, aber ich habe für die Hintergrunderklärung gestimmt.
Xdeleon
Ich bin auf dieses Problem gestoßen, als ich eine Podspec geschoben habe. Das hilft wirklich!
R0CKSTAR
Wichtiges Detail: Ich hatte CocoaPods via Brew installiert. In diesem Fall war ein Upgrade von Ruby und openssl nicht ausreichend. Ich musste CocoaPods deinstallieren und dann über neu installieren, gemwie in dieser Antwort gezeigt.
Erik Doernenburg
22

Ich bin auch auf das gleiche Problem gestoßen. In meiner Szene habe ich ein Spiegel-Repo (woanders gehostet) von Cocoapods-Spezifikationen auf Github verwendet. Als ich das Specs Repo aktualisiert habe, hat es funktioniert!

cd ~/.cocoapods/repos/master
git pull
Noveleven
quelle
2
Ich habe auch den Offline / Github Down Fehler Fehler bekommen und das ist was funktioniert hat. Ich zögerte ein wenig, Pods zu deinstallieren.
Ethan Parker
Diese Antwort hat bei mir tatsächlich funktioniert. Ich habe mehr als 2 Stunden verbracht. Vielen Dank.
Hiren Patel
Diese Antwort behebt die Ursache tatsächlich mit einer Lösung und nicht mit einem Hacky, indem der Ordner gelöscht wird, der einen Git-Klon erzwingt.
NoodleOfDeath
14

Das funktionierte wie Magie

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

Andernfalls

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

Das hat bei mir funktioniert:

  1. Entfernen Podfile.lock
  2. Lauf pod install
Hamed
quelle
7

Aktualisieren Sie einfach die Cocoapods: sudo gem install cocoapods

Grifas
quelle
7

Eine etwas einfachere Lösung von Adem, die rbenv nicht verwendet:

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

Schließlich stellen Sie sicher , dass Sie nicht Ihren haben PATHvariable Satz zu haben , /usr/local/bin nach $PATH . Ihr PATHExport in ~/.bash_profilesollte ungefähr so ​​aussehen:

export PATH=/usr/local/bin:$PATH
Max
quelle
1
Das hat mir auch gereicht. Beachten Sie, dass Sie Cocoapods immer noch neu installieren müssen, indem Sie sie ausführen, gem install cocoapodsda jeder Rubin seine eigene Edelsteinposition hat. Übrigens muss der brew install opensslSchritt nicht ausgeführt werden, da es sich sowieso um eine Abhängigkeit von Ruby handelt.
Sagi Iltus
Es hat mir wirklich geholfen, danke! Obwohl ich Terminal nach dem Ändern der Datei ~ / .bash_profile neu starten musste.
Joliejuly
2

Wenn jemand diese Probleme auf Circle CI hat, hatte ich fast einen Tag lang damit zu kämpfen.

Letztendlich denke ich, dass der beste Weg ist, die bereitgestellte Lösung zum Herunterladen von ihren Servern zu verwenden.

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

Unter diesem Link können Sie sehen, dass einer der Hauptverantwortlichen von Cocoapods sagt, dass es in Ordnung ist: Der CocoaPods-Repo-Cache wird ungefähr alle 30 Minuten aktualisiert, was normalerweise häufig genug ist, um nur die letzten 6 Pushs zum Specs-Repo zu verpassen.

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

Kristaps Grinbergs
quelle
0

Ich habe als nächstes im Terminal:

  1. brauen installieren openssl

    Wenn Sie kein Hausgebräu haben:

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

    und wiederhole S.1

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

  3. openssl version

    Ausgabe: OpenSSL 1.0.2n 7. Dezember 2017

  4. Pod Update

Nosov Pavel
quelle
0

Ich hatte auch das gleiche Problem. Ich habe es nur durch den Zugriff auf zwei Befehle vom Terminal gelöst.

sudo gem deinstallieren nanaimo

und dann

sudo gem installiere nanaimo

Hoffe so wird es helfen.

Raj Joshi
quelle
0
  1. Entfernen Sie alle Cocoapods-Pakete. Sehen Sie hier für Informationen darüber , wie dies zu tun.

  2. Installieren Sie dann die Cocoapods neu. $ sudo gem install cocoapods

sagte altintop
quelle
0

Für mich haben die folgenden Befehle das Problem behoben

Cocoapods vom Mac entfernen

 sudo gem uninstall cocoapods

Cocoapods auf dem Mac installieren

sudo gem install cocoapods
Durai Amuthan.H
quelle
0

Wenn ein ähnliches Problem auftritt, bei dem die Fernbedienung vorzeitig auflegt, können Sie sshstattdessen das Repo klonen.

Git-Klon [email protected]: CocoaPods / Specs.git-Master.

Um SSH zum Klonen eines GitHub-Repos verwenden zu können, benötigen Sie ein GitHub-Konto und Ihre SSH-Schlüssel.

Folgen Sie der Dokumentation hier .

Anietie James
quelle
0
  • Ruby und Cocoapods aktualisieren.
  • Überprüfen Sie die Ruby-Version in der Cocoapods-Umgebung.

verwenden

pod env

Geben Sie hier die Bildbeschreibung ein

rbenv global x.x.x
ruby -v

Ruby-Version ändern. Wenn es nicht funktioniert, beobachten Sie, wie dieses Rbenv die Ruby-Version nicht ändert

Überprüfen Sie die Ruby-Version in der Cocoapods-Umgebung. Wenn nicht geändert,

which pod

Stellen Sie sicher, dass Ihr Pod-Pfad ist /usr/local/bin/pod, wenn nicht

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