Cocoapods: не удалось подключиться к GitHub для обновления репозитория спецификаций CocoaPods / Specs


139

При запуске выдается pod repo updateследующая ошибка:

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


Использование cocoapods 1.0.1

Я также знаю об этом: Master spec-repo rate limit post-mortem .


Добавление флага --verbose к вызову показывает стек вызовов 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>'


Не могу найти способ обойти это и не могу запустить проект.


1
Обратитесь к github.com/CocoaPods/CocoaPods/issues/ ... , это связано со старой версией Ruby
vikramvi

Ответы:


417

Одна из основных проблем - «слабые криптографические стандарты удалены» после февраля 2018 года.

Здесь примечание: https://github.com/blog/2507-weak-cryptographic-standards-removed

Чтобы решить эту проблему, сначала вам нужно обновить openssl, затем ruby, затем 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

теперь ты можешь сделать

$ pod update

ссылка на источник: https://qiita.com/satoshi-iwaki/items/ed2c267127dcc80baa21


2
должно быть export PATH="$HOME/.rbenv/shims:$PATH"и не должно бытьexport PATH="$HOME/.rbenv/bin:$PATH"
kambala

2
Есть ли причина, по которой вы устанавливаете версию 2.1.0 Ruby? Почему не последний?
derickito

1
Я последовал этому совету при нажатии клавиши, а также всем другим предлагаемым ответам в этой теме ... безрезультатно. Я столько раз поражал репозиторий Cocoapods. Есть какие-нибудь длинные планы или безумные идеи?
Ник Шнебл

3
По этой причине вам следует использовать более новую версию Ruby: «ПРЕДУПРЕЖДЕНИЕ: срок службы ruby-2.1.0 истек и теперь он не поддерживается. Он больше не получает исправлений ошибок или критических обновлений безопасности».
джомафер

5
Также пришлось сделать rm -rf ~ / .cocoapods / перед запуском обновления
репозитория

137

Наконец-то удалось решить это путем удаления ./cocoapods/repos/masterи запуска pod install.

Более формальное решение, вероятно, будет таким:

pod repo remove master
pod setup
pod install

Если pod installпосле выполнения первых двух шагов произошел сбой, возможно, вам придется удалить файл Podfile.lock.

Почему изначально не удалось подключиться к Github, мне непонятно.


5
Со мной случилось после смены ключей ssh. Как одна из возможных причин.
Сквотч

1
Я выполнил все три шага, но все равно отображается [!] Не удалось подключиться к GitHub для обновления репозитория спецификаций CocoaPods / Specs - проверьте, не в сети ли вы или GitHub не работает
Анкит Кумар Гупта

удаление файла «Podfile.lock» и последующее выполнение «pod install» сработало для меня! Спасибо
программист

это ~/.cocoapodsне так./cocoapods
Boweidmann

52

Вы можете попробовать это:

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

но в моем случае мне пришлось:

  • удалите Podfile.lock, а затем

  • $pod install


43

Другое решение, подобное решениям Макса и Адема в этом потоке, можно найти в проблеме с CocoaPods :

brew install ruby
sudo gem install cocoapods

Убедитесь, что вы используете последнюю и правильную версию Ruby:

ruby --version
which ruby

Следует использовать /usr/local/bin/ruby

Причина: оказалось, что 22 февраля Github обновился и теперь поддерживает TLS 1.2. Старые версии MacOS до High Sierra поставлялись с предустановленным Ruby 2.0. В этой версии используется OpenSSL 0.9.8, который «не работает с серверами, поддерживающими только TLS 1.2».

Обновление до последней версии Ruby (2.5) и последней версии CocoaPods (1.4) устранило это для меня без необходимости делать что-либо с openssl (Ruby обновляет openssl). Это хорошее решение, если вы пока не хотите обновляться до High Sierra.


2
Ни одно из других решений не помогло, это сработало. Обновление до последней версии Ruby и последней версии CocoaPods. Спасибо.
Сэм Бинг

1
Для меня это не помогло, но я проголосовал за объяснение предыстории.
xdeleon

Я столкнулся с этой проблемой при нажатии на подспек. Это действительно помогает!
R0CKSTAR

Важная деталь: я установил CocoaPods через brew. В этом случае обновления Ruby и openssl было недостаточно. Мне пришлось удалить CocoaPods, а затем переустановить его, gemкак показано в этом ответе.
Эрик Дёрненбург

22

Я тоже столкнулся с той же проблемой. В своей сцене я использовал зеркальное репо (размещенное в другом месте) спецификаций cocoapods на github. Когда я обновил репозиторий спецификаций, это сработало!

cd ~/.cocoapods/repos/master
git pull

2
Я также получал сообщение об ошибке offline / github down, и это сработало. Я немного не решился удалить капсулы.
Итан Паркер

Этот ответ действительно сработал для меня. Я потратил больше 2-х часов. Большое спасибо.
Hiren Patel

Этот ответ на самом деле устраняет причину с помощью решения, а не взлома, путем удаления папки, которая вызывает клонирование git.
NoodleOfDeath

14

Это сработало как по волшебству

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

В противном случае

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

8

Немного более простое решение от Adem, которое не использует rbenv:

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

Наконец, убедитесь, что у вас не установлена PATHпеременная /usr/local/bin после $PATH . Ваш PATHэкспорт в ~/.bash_profileдолжен выглядеть примерно так:

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

1
Этого мне и хватило. Обратите внимание, что вам все равно нужно переустановить cocoapods, запустив, gem install cocoapodsпоскольку каждый рубин имеет собственное местоположение драгоценного камня. Кстати, нет необходимости запускать brew install opensslшаг, так как он в любом случае зависит от ruby.
Саги Илтус

Мне это очень помогло, спасибо! Хотя мне пришлось перезапустить Терминал после изменения файла ~ / .bash_profile.
joliejuly 02



2

Если у кого-то есть эти проблемы на Circle CI, я боролся с этим почти день.

В конце концов, я думаю, что лучший способ - использовать предоставленное ими решение для загрузки с их серверов.

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

Из этой ссылки вы можете видеть, что один из основных участников cocoapods говорит, что все в порядке: кеш репозитория CocoaPods обновляется примерно каждые 30 минут, что обычно достаточно часто, чтобы пропустить только последние 6 нажатий на репозиторий Specs.

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


0

Далее я сделал в Терминале:

  1. варить установить openssl

    если у вас нет домашнего пива:

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

    и повторить п.1

  2. экспорт PATH = "/ usr / local / opt / openssl / bin: $ PATH"

  3. версия openssl

    Выход: OpenSSL 1.0.2n 7 декабря 2017 г.

  4. обновление стручка


0

Я тоже столкнулся с той же проблемой. Я решил это только путем доступа к двум командам с терминала.

sudo gem удалить nanaimo

а потом

sudo gem установить нанаймо

Надеюсь, это поможет.



0

Для меня следующие команды устранили проблему

Удаление коконоподов с Mac

 sudo gem uninstall cocoapods

Установка cocoapods на Mac

sudo gem install cocoapods

0

Любой, кто сталкивается с подобной проблемой, когда пульт преждевременно зависает, используйте ssh вместо этого для клонирования репо.

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

Чтобы использовать SSH для клонирования репозитория GitHub, вам необходимо иметь учетную запись GitHub и иметь связанные с ней ключи SSH.

Следуйте их документации здесь .


0
  • обновите рубин и коконады.
  • проверьте версию ruby ​​в env cocoapods.

использовать

pod env

введите описание изображения здесь

rbenv global x.x.x
ruby -v

изменить рубиновую версию. Если не работает, посмотрите это rbenv не меняет версию ruby

проверьте рубиновую версию в env cocoapods. Если не изменено,

which pod

убедитесь, что ваш путь к поду /usr/local/bin/pod, если нет

export PATH=/usr/local/bin:$PATH
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.