肇鑫的技术博客

业精于勤,荒于嬉

脱离CocoaPods 1.8.0的trunk

今早升级pods的时候,看到1.8.0的CocoaPods正式版出了。于是升级了。之后pod install的时候,被强制安装了新的源trunk.

使用时,我发现,pod repo update的界面变了,不仅没有了之前的进度和速度,还变慢了。我搜索了一下trunk,都是说和个人建立自己的源有关,于是我迅速提交了一个故障报告。CocoaPods 1.8.0 added 'trunk' to my repo though I don't use 'trunk' #9190

很快收到了回复,说这个是1.8.0的新功能,采用cdn替换了原本的master。通俗说,就是用分布各地的服务器来替换了原本的GitHub的源。理论上讲,使用了cdn之后,如果你的附近有源服务器,就会加速你更新pods的速度。

但实际上我这里反而重回龟速了。

CocoaPods 1.8希望你这么做

删除掉原本的master

千万别这么做!

pod repo remove master

只要你这么做了,以后的操作就都是基于trunk的了。

如何脱离trunk

如果你已经有了trunk

pod repo remove trunk

如果你已经删掉了master,采用此命令恢复

git clone https://github.com/CocoaPods/Specs.git ~/.cocoapods/repos/master

最重要的一步

打开你每个项目的Podfile,在最顶部添加

source 'https://github.com/CocoaPods/Specs.git'

trunk的方式已经成为了新的默认。如果还想使用旧的方式,就必须每个Podfile顶部都指定源。

两个脚本

为已有的Podfile添加源

#!/bin/bash
echo -e "source 'https://github.com/CocoaPods/Specs.git'\n" | cat - Podfile > temp && mv temp Podfile

新建Podfile

#!/bin/bash
pod init
echo -e "source 'https://github.com/CocoaPods/Specs.git'\n" | cat - Podfile > temp && mv temp Podfile

此外

如果你对于自己的网络有信心,可以测试一下使用cdn的网速。满意的话,也可以按照官方的指导做,删掉master。这样的好处就是不用每个Podfile都需要指定源了。

在终端使用代理

如果你的代理包含socks5,可以在~/.bashrc文件中添加两行。

alias proxy='export all_proxy=socks5://127.0.0.1:1086'
alias unproxy='unset all_proxy'

这样就可以在终端中使用proxy开启代理,可以极大地加速终端下访问GitHub的速度。

参考资料