CocoaPods CDN问题在 1.9.x以上版本问题

1,260 阅读2分钟

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