可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
When running pod repo update
the following error is generated:
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
Using cocoapods 1.0.1
I'm also aware of this: .
Adding --verbose flag to the call shows the ruby call stack:
.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 `' .rvm/gems/ruby-2.3.0/bin/pod:23:in `load' .rvm/gems/ruby-2.3.0/bin/pod:23:in `' .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 `'
Can't find any way to workaround this and cannot run the project. Any help is much appreciated.
Thanks!
回答1:
One of the major issue is "weak cryptographic standards removed" after 2018 February.
Here a note: https://github.com/blog/2507-weak-cryptographic-standards-removed
To solve this, first you need to update openssl, then ruby, then 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
now, you can do
$ pod update
source link: https://qiita.com/satoshi-iwaki/items/ed2c267127dcc80baa21
edit: updated ruby version
回答2:
Finally managed to solve it by deleting ./cocoapods/repos/master
and running pod install
.
The more formal solution would probably go like this:
pod repo remove master pod setup pod install
Why it initially failed to connect to Github is beyond me.
回答3:
You can try this:
$sudo rm -fr ~/.cocoapods/repos/master $pod setup $pod install
but in my case I had to:
回答4:
A another solution similar to Max's and Adem's in this thread is found in a CocoaPods issue:
brew install ruby sudo gem install cocoapods
Verify that you're using the latest and correct Ruby with:
ruby --version which ruby
Should be using /usr/local/bin/ruby
Reason: It turns out that Github updated to only support TLS 1.2 on Feb 22nd. Older versions of MacOS before High Sierra come preinstalled with Ruby 2.0. This version uses OpenSSL 0.9.8 which "will fail with servers supporting only TLS 1.2."
Updating to the latest Ruby (2.5) and latest CocoaPods (1.4) fixed this for me without having to do anything with openssl (Ruby updates openssl). This is a good solution if you don't want to update to High Sierra just yet.
回答5:
I also encountered the same issue. In my scene, i used a mirror repo (hosted elsewhere) of cocoapods specs on github. When i updated the specs repo, it worked!
cd ~/.cocoapods/repos/master git pull
回答6:
This worked like magic
$sudo rm -fr ~/.cocoapods/repos/master $pod setup $pod install
Otherwise
$pod setup Ctrl +C cd ~/.cocoapods/repos $git clone --depth 1 https://github.com/CocoaPods/Specs.git master
回答7:
Just update cocoapods: sudo gem install cocoapods
回答8:
A slightly simpler solution from Adem's that doesn't use rbenv:
brew install openssl brew upgrade openssl brew install ruby brew link --overwrite ruby
Finally, make sure you don't have your PATH
variable set to have /usr/local/bin
after $PATH
. Your PATH
export in ~/.bash_profile
should look similar to this:
export PATH=/usr/local/bin:$PATH
回答9:
If someone has these issues on Circle CI I was struggling with this for a day almost.
In the end I think the best way is to use their provided solution to download from their servers.
curl https://cocoapods-specs.circleci.com/fetch-cocoapods-repo-from-s3.sh | bash -s cf
From this link you can see that one of the cocoapods core contributor says that it's fine: The CocoaPods repo cache is updated roughly every 30 mins, which is usually frequent enough to only miss the last 6 pushes to the Specs repo.
https://discuss.circleci.com/t/best-practice-for-use-of-cached-cocoapods-specs/18897/2
回答10:
I did next in Terminal:
brew install openssl
if you don't have home brew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
and repeat p.1
export PATH="/usr/local/opt/openssl/bin:$PATH"
openssl version
Output:OpenSSL 1.0.2n 7 Dec 2017
pod update
回答11:
I was also facing the same problem. I solved it only by accessing two commands from terminal.
sudo gem uninstall nanaimo
and then
sudo gem install nanaimo
Hope so it will help.
回答12:
This worked for me:
- Remove
Podfile.lock
- Run
pod install