1.相信很多人都在cocoapods 1.9.0 / 1.9.1 / 1.9.2 这几个版本上遇到下面这个问题
CDN: trunk URL couldn't be downloaded: https://raw.githubusercontent.com
还有
JSON::ParserError - 767: unexpected token at ''
还有
[!] CDN:trunk Repo update faild - 5 error(s):
还有
CDN: trunk URL couldn't be downloaded:
2.网上查过很多解决版本
-
例如:
在Podfile第一行加入
source 'https://github.com/CocoaPods/Specs.git
-
甚至
有人让你回退到cocoapods 1.7.5 版本完全不使用CDN支持 -
还有
就是把repo拉回本地
cd ~/.cocoapods/repos && git clone https://github.com/CocoaPods/Specs.git master
实际上这是在使用本地的repo库的解决办法, 这是放弃使用CDN的方法
而我不想要这么这么老旧的办法
3.问题在哪里?
实际上我们都知道问题就是出现在 trunk 的 CDN地址 'cdn.cocoapods.org/' 无法正确解析, 也就出现了各种不知道为什么的错误。
注意:这真的不是你的cocoapods安装不正确,就是因为CDN的问题
4.解决:
-1.在hosts中加入 raw.githubusercontent.com 的正确ip (/etc/hosts)
//这个网站可以查询到网址的真实ip
https://www.ipaddress.com/
//推荐以下方法
0.在shell的配置( ~/.zshrc )中加入以下命令
//以使用socks代理为例,ss的代理端口为1080,那么应该设置为 (这个主要看爬梯软件配置的socks是什么端口)
export http_proxy="socks5://127.0.0.1:1080"
export https_proxy="socks5://127.0.0.1:1080"
或者, 走本地端口配置
export http_proxy="http://localhost:port"
export https_proxy="http://localhost:port"
或者,直接设置全部使用 ALL_PROXY
export ALL_PROXY=socks5://127.0.0.1:1080
1.利用proxychains在终端使用socks5代理
如果代理服务器需要登陆,这时可以直接把用户名和密码写进去
http_proxy=http://userName:password@proxyAddress:port
5.最后你都用上CDN的repo了,本地repo还留着过年吗?
//删除本地repo
pod repo remove master
6.关于再次失败的问题
如果你有一次忘记开vpn再执行pod install 会报错执行失败, 然后再开VPN执行pod install还是不断失败, 这是为什么? 因为你pod失败的时候, 那些错误信息会被写入到trunk中,之后你无论怎么pod都是失败的
所以:如果你失败一次,你就要删一次trunk
rm -rf ~/.cocoapods/repos/trunk/
pod install