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
но в моем случае я должен был:
Ответ 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
Это сработало для меня:
- Удалить
Podfile.lock
- Запустить
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
Я сделал следующий в Терминале:
-
Заменить установку openssl
если у вас нет домашнего варева:
/usr/bin/ruby -e "$ (curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
и повторить стр.1
-
export PATH = "/usr/local/opt/openssl/bin: $ PATH"
-
версия openssl
Выход: OpenSSL 1.0.2n 7 декабря 2017 г.
-
обновление pod
Ответ 12
У меня тоже была проблема. Я решил это только путем доступа к двум командам из терминала.
sudo gem удалить nanaimo
а потом
sudo gem install nanaimo
Надеюсь, это поможет.
Ответ 13
-
Удалите все пакеты cocoapods. См. Здесь информацию о том, как это сделать.
-
Затем переустановите 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-ключи.
Следуйте их документации здесь.