Cocoapods: Не удалось подключиться к GitHub, чтобы обновить спецификации CocoaPods/Specs repo

При запуске 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 ограничивает вскрытие.


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

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

$ rbenv install 2.5.0

$ rbenv versions
* system (set by /Users/username/.rbenv/version)
  2.5.0

$ ruby --version
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]

$ rbenv global 2.5.0

$ rbenv versions
  system
* 2.5.0 (set by /Users/username/.rbenv/version)

$ ruby --version
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin16]

$ gem install cocoapods -n /usr/local/bin

$ which pod
/usr/local/bin/pod

$ pod --version
1.4.0

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

$ pod update

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

изменение: обновленная рубиновая версия

Ответ 2

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

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

pod repo remove master
pod setup
pod install

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

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

Ответ 3

Вы можете попробовать следующее:

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

но в моем случае я должен был:

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

  • $pod install

Ответ 4

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

brew install ruby
sudo gem install cocoapods

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

ruby --version
which ruby

Должен использоваться /usr/local/bin/ruby

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

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

Ответ 5

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

cd ~/.cocoapods/repos/master
git pull

Ответ 6

Это работало как магия

$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

Ответ 7

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

Ответ 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

Ответ 9

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

  1. Удалить Podfile.lock
  2. Запустить pod install

Ответ 10

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

Ответ 11

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

  1. Заменить установку openssl

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

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

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

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

  3. версия openssl

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

  4. обновление pod

Ответ 12

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

sudo gem удалить nanaimo

а потом

sudo gem install nanaimo

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

Ответ 13

  1. Удалите все пакеты cocoapods. См. Здесь информацию о том, как это сделать.

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

Ответ 14

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

Удаление cocoapods из mac

 sudo gem uninstall cocoapods

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

sudo gem install cocoapods

Ответ 15

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

git clone [email protected]: мастер CocoaPods/Specs.git.

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

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