Cocoapods: Gagal terhubung ke GitHub untuk memperbarui repo spesifikasi CocoaPods / Specs


139

Saat menjalankan pod repo updatekesalahan berikut ini dihasilkan:

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


Menggunakan cocoapods 1.0.1

Saya juga mengetahui hal ini: Master spec-repo rate membatasi post-mortem .


Menambahkan bendera --verbose ke panggilan akan menunjukkan tumpukan panggilan 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>'


Tidak dapat menemukan cara untuk mengatasinya dan tidak dapat menjalankan proyek.


1
Lihat github.com/CocoaPods/CocoaPods/issues/… , ini terkait dengan versi Ruby yang lebih lama
vikramvi

Jawaban:


417

Salah satu masalah utama adalah "standar kriptografi yang lemah dihapus" setelah Februari 2018.

Berikut catatannya: https://github.com/blog/2507-weak-cryptographic-standards-removed

Untuk mengatasi ini, pertama Anda perlu memperbarui openssl, lalu ruby, lalu 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

sekarang, kamu bisa melakukannya

$ pod update

link sumber: https://qiita.com/satoshi-iwaki/items/ed2c267127dcc80baa21


2
seharusnya export PATH="$HOME/.rbenv/shims:$PATH"dan tidakexport PATH="$HOME/.rbenv/bin:$PATH"
kambala

2
Apakah ada alasan mengapa Anda menginstal ruby ​​versi 2.1.0? Mengapa bukan yang terbaru?
derickito

1
Saya mengikuti saran ini ke penekanan tombol, bersama dengan setiap jawaban yang disarankan lainnya di utas ini ... tidak berhasil. Saya telah menghancurkan repo Cocoapods berkali-kali. Adakah tembakan panjang atau ide gila di luar sana?
Nick Schneble

3
Anda harus menggunakan versi Ruby yang lebih baru karena ini: "PERINGATAN: ruby-2.1.0 telah melewati akhir masa pakainya dan sekarang tidak didukung. Versi ini tidak lagi menerima perbaikan bug atau pembaruan keamanan penting."
jomafer

5
Juga harus melakukan rm -rf ~ / .cocoapods / sebelum menjalankan pembaruan repo pod
rustycode

137

Akhirnya berhasil mengatasinya dengan menghapus ./cocoapods/repos/masterdan menjalankannya pod install.

Solusi yang lebih formal mungkin akan seperti ini:

pod repo remove master
pod setup
pod install

Jika pod installgagal setelah melakukan dua langkah pertama, Anda mungkin perlu menghapus file Podfile.lock.

Mengapa awalnya gagal terhubung ke Github berada di luar jangkauan saya.


5
Terjadi pada saya setelah mengubah kunci ssh. Sebagai salah satu kemungkinan alasannya.
Squatch

1
Saya melakukan semua 3 langkah tetapi tetap saja itu menunjukkan [!] Gagal terhubung ke GitHub untuk memperbarui repo spesifikasi CocoaPods / Specs - Periksa apakah Anda sedang offline, atau apakah GitHub sedang tidak
aktif

menghapus file "Podfile.lock" dan kemudian menjalankan "pod install" berhasil untuk saya! Terima kasih
programmer

itu ~/.cocoapodstidak./cocoapods
boweidmann

52

Anda dapat mencoba ini:

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

tetapi dalam kasus saya, saya harus:

  • hapus Podfile.lock lalu

  • $pod install


43

Solusi lain yang mirip dengan Max dan Adem di utas ini ditemukan dalam masalah CocoaPods :

brew install ruby
sudo gem install cocoapods

Pastikan Anda menggunakan Ruby terbaru dan benar dengan:

ruby --version
which ruby

Harus menggunakan /usr/local/bin/ruby

Alasan: Ternyata Github diperbarui untuk hanya mendukung TLS 1.2 pada 22 Feb. Versi lama MacOS sebelum High Sierra sudah diinstal sebelumnya dengan Ruby 2.0. Versi ini menggunakan OpenSSL 0.9.8 yang "akan gagal dengan server yang hanya mendukung TLS 1.2."

Memperbarui ke Ruby terbaru (2.5) dan CocoaPods (1.4) terbaru memperbaiki ini untuk saya tanpa harus melakukan apa pun dengan openssl (Ruby update openssl). Ini adalah solusi yang bagus jika Anda belum ingin memperbarui ke High Sierra.


2
Tidak ada solusi lain yang berhasil, ini berhasil. Memperbarui ke Ruby terbaru dan CocoaPods terbaru. Terima kasih.
Sam Bing

1
Ini tidak memperbaikinya untuk saya, tetapi saya memilih untuk penjelasan latar belakang.
xdeleon

Saya menemui masalah ini saat mendorong podspec. Ini sangat membantu!
R0CKSTAR

Detail penting: Saya menginstal CocoaPods melalui minuman. Dalam hal ini, mengupgrade Ruby dan openssl tidaklah cukup. Saya harus menghapus CocoaPods dan kemudian menginstalnya kembali melalui gemseperti yang ditunjukkan dalam jawaban ini.
Erik Doernenburg

22

Saya juga mengalami masalah yang sama. Dalam adegan saya, saya menggunakan repo cermin (dihosting di tempat lain) dari spesifikasi cocoapods di github. Ketika saya memperbarui repo spesifikasi, itu berhasil!

cd ~/.cocoapods/repos/master
git pull

2
Saya juga mendapatkan kesalahan offline / github down dan inilah yang berhasil. Saya agak ragu untuk menghapus pod.
Ethan Parker

Jawaban ini benar-benar berhasil untuk saya. Saya menghabiskan lebih dari 2 jam. Terima kasih banyak.
Hiren Patel

Jawaban ini sebenarnya mengatasi penyebabnya dengan solusi daripada peretasan dengan menghapus folder yang memaksa klon git.
NoodleOfDeath

14

Ini bekerja seperti sulap

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

Jika tidak

$pod setup
Ctrl +C
cd ~/.cocoapods/repos 
$git clone --depth 1 https://github.com/CocoaPods/Specs.git master

8

Solusi yang sedikit lebih sederhana dari Adem yang tidak menggunakan rbenv:

brew install openssl
brew upgrade openssl
brew install ruby
brew link --overwrite ruby

Terakhir, pastikan Anda tidak PATHmenyetel variabel Anda /usr/local/bin setelahnya $PATH . PATHEkspor Anda ~/.bash_profileakan terlihat seperti ini:

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

1
Ini juga sudah cukup bagiku. Perhatikan bahwa Anda masih perlu menginstal ulang cocoapods dengan menjalankan gem install cocoapodskarena setiap ruby ​​memiliki lokasi permata sendiri. BTW, tidak perlu menjalankan brew install openssllangkahnya karena itu ketergantungan ruby.
Sagi Iltus

Itu sangat membantu saya, terima kasih! Meskipun saya harus meluncurkan kembali Terminal setelah mengubah file ~ / .bash_profile.
jolieJuli

8

Ini berhasil untuk saya:

  1. Menghapus Podfile.lock
  2. Lari pod install

7

Perbarui saja cocoapods: sudo gem install cocoapods


2

Jika seseorang memiliki masalah ini di Circle CI saya berjuang dengan ini hampir hampir sehari.

Pada akhirnya saya pikir cara terbaik adalah menggunakan solusi yang mereka sediakan untuk mengunduh dari server mereka.

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

Dari tautan ini Anda dapat melihat bahwa salah satu kontributor inti cocoapods mengatakan bahwa tidak apa-apa: Cache repo CocoaPods diperbarui kira-kira setiap 30 menit, yang biasanya cukup sering sehingga hanya melewatkan 6 dorongan terakhir ke repo Spesifikasi.

https://discuss.circleci.com/t/best-practice-for-use-of-cached-cocoapods-specs/18897/2



0

Saya juga menghadapi masalah yang sama. Saya menyelesaikannya hanya dengan mengakses dua perintah dari terminal.

sudo gem uninstall nanaimo

lalu

sudo gem menginstal nanaimo

Semoga bisa membantu.


0
  1. Hapus semua paket cocoapods. Lihat di sini untuk informasi tentang cara melakukan ini.

  2. Kemudian pasang kembali cocoapods. $ sudo gem install cocoapods


0

Bagi saya, perintah di bawah ini memperbaiki masalah

Menghapus cocoapod dari mac

 sudo gem uninstall cocoapods

Menginstal cocoapods di mac

sudo gem install cocoapods

0

Siapa pun yang menghadapi masalah serupa di mana remote menutup sebelum waktunya, gunakan sshuntuk mengkloning repo.

git clone git@github.com: CocoaPods / Specs.git master.

Untuk menggunakan SSH untuk mengkloning repo GitHub, Anda harus memiliki akun GitHub dan kunci SSH Anda terkait dengannya.

Ikuti dokumentasinya di sini .


0
  • perbarui ruby ​​dan cocoapods.
  • periksa versi ruby ​​di cocoapods env.

menggunakan

pod env

masukkan deskripsi gambar di sini

rbenv global x.x.x
ruby -v

ubah versi ruby. Jika tidak berfungsi, perhatikan rbenv ini tidak mengubah versi ruby

periksa versi ruby ​​di cocoapods env. Jika tidak diubah,

which pod

pastikan jalur pod Anda /usr/local/bin/pod, jika tidak

export PATH=/usr/local/bin:$PATH
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.