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

При беге 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

Мне также известно об этом: Мастер ограничения скорости репо после вскрытия.


Добавление флага --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>'


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

15 ответов

Одна из основных проблем - "устранены слабые криптографические стандарты" после февраля 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

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

$ 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

Наконец удалось решить это, удалив ./cocoapods/repos/master и работает pod install,

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

pod repo remove master
pod setup
pod install

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

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

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

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

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

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

  • $pod install

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

brew install ruby
sudo gem install cocoapods

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

ruby --version
which ruby

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

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

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

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

cd ~/.cocoapods/repos/master
git pull

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

$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

Это сработало для меня:

  1. Удалить Podfile.lock
  2. Бежать pod install

Немного более простое решение от 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

Просто обновите cocoapods: sudo gem install cocoapods

Если у кого-то есть эти проблемы на 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

  1. Удалите все упаковки с кокосовыми капсулами. Смотрите здесь для получения информации о том, как это сделать.

  2. Затем переустановите cocoapods. $ sudo gem install cocoapods

Я сделал следующее в Терминале:

  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. обновление стручка

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

sudo gem удалить nanaimo

а потом

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

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

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

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

pod env

rbenv global x.x.x
ruby -v

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

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

which pod

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

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

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

git clone git@github.com: мастер CocoaPods / Specs.git.

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

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

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

Удаление Cocoapods из Mac

 sudo gem uninstall cocoapods

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

sudo gem install cocoapods
Другие вопросы по тегам