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