Cocoapods: Не вдалося підключитися до GitHub для оновлення репортажних специфікацій CocoaPods / Specs


136

При запуску 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


Використання какаопів 1.0.1

Я також знаю про це: майстер спец-репо швидкості, що обмежує післясмерть .


Додавання прапорця до версії для виклику показує стек рубінових дзвінків:

.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/isissue/… , це стосується старішої версії Ruby
vikramvi

Відповіді:


415

Одне з найважливіших питань - «слабкі криптографічні стандарти зняті» після 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"
камбала

2
Чи є причина, чому ви встановлюєте версію 2.1.0 ruby? Чому б не останній?
дерикіто

1
Я дотримувався цієї поради на натискання клавіші, а також на всі інші запропоновані відповіді в цій темі ... безрезультатно. Я стільки разів здував репортаж Cocoapods. Якісь довгі кадри чи шалені ідеї там?
Нік Шнебл

3
Вам слід скористатись новою версією Ruby через це: "ПОПЕРЕДЖЕННЯ: ruby-2.1.0 минув його кінець життя і тепер не підтримується. Він більше не отримує виправлення помилок або критичних оновлень безпеки."
Джомафер

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

136

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

Більш офіційне рішення, ймовірно, піде так:

pod repo remove master
pod setup
pod install

Якщо pod installне вдалося виконати перші два кроки, можливо, вам доведеться видалити свій Podfile.lock.

Чому спочатку не вдалося підключитися до Github, це не в мене.


5
Сталося зі мною після зміни ssh клавіш. Як одна з можливих причин.
Сквот

1
Я зробив усі 3 кроки, але все-таки це показує [!] Не вдалося підключитися до GitHub для оновлення репортажних специфікацій CocoaPods / Specs - Перевірте, чи ви в автономному режимі чи GitHub не працює
Ankit Kumar Gupta

видалення файла "Podfile.lock", а потім виконання "встановлення pod" працювало для мене! Дякую
програміст

51

Ви можете спробувати це:

$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

Причина: виявляється, що 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.


2
Жодне з інших рішень не працювало, це було. Оновлення до останнього Ruby та до останнього CocoaPods. Дякую.
Сем Бінг

1
Це не вирішило для мене, але я проголосував за основне пояснення.
xdeleon

Я зіткнувся з цією проблемою під час натискання на підспек. Це справді допомагає!
R0CKSTAR

Важлива деталь: у мене встановлено CocoaPods за допомогою варіння. У такому випадку оновлення Ruby і openssl було недостатньо. Мені довелося видалити CocoaPods, а потім перевстановити його, gemяк показано в цій відповіді.
Ерік Доерненбург

22

Я також зіткнувся з тим же питанням. У моїй сцені я використовував дзеркальне репо (розміщене в інших місцях) специфікацій какаодів на github. Коли я оновив репортаж специфікацій, він працював!

cd ~/.cocoapods/repos/master
git pull

2
Я отримував також помилку в режимі офлайн / github, і це те, що працювало. Я трохи вагався видалити стручки.
Етан Паркер

Ця відповідь насправді спрацювала на мене. Я провів більше 2 годин. Дуже дякую.
Хірен Патель

Ця відповідь реально вирішує причину рішення, а не хакі, видаляючи папку, яка змушує 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



7

Трохи простіше рішення від Adem's, яке не використовує 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крок, оскільки це залежність від рубіну.
Сагі Ілтус

Це мені дуже допомогло, дякую! Хоча мені довелося перезапустити Terminal після зміни файлу ~ / .bash_profile.
joliejuly

2

Якщо хтось має ці проблеми в CirI CI, я майже цілий день боровся з цим.

Зрештою, я думаю, що найкращим способом є використання наданого рішення для завантаження з їхніх серверів.

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

З цього посилання ви бачите, що один із основних учасників какаоподів каже, що це добре: кеш-репо-репортаж 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. Export PATH = "/ usr / local / opt / openssl / bin: $ PATH"

  3. версія Opensl

    Вихід: OpenSSL 1.0.2n 7 грудня 2017 р

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


0

Я також стикався з тією ж проблемою. Я вирішив це лише за допомогою доступу до двох команд з терміналу.

sudo gem uninstall nanaimo

і потім

sudo gem встановити nanaimo

Сподіваюсь, що це допоможе.



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
  • оновити рубін і какаоди.
  • перевірити рубінову версію в кокаподах env.

використання

pod env

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

rbenv global x.x.x
ruby -v

змінити рубінову версію. Якщо це не працює, дивіться, щоб ця версія rbenv не змінювала версію рубіну

перевірити рубінову версію в кокаподах env. Якщо не змінено,

which pod

переконайтеся, що ваш шлях стручка /usr/local/bin/pod, якщо ні

export PATH=/usr/local/bin:$PATH
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.