Error installing
经常在安装cocoapods的的时候出现:Error installing xxx
, 比如最常见的是spec仓库在goole上面的:
由于https://chromium.googlesource.com/ 无法访问,所以导致无法安装,一种方案是采用科学上网工具,另外其他方案则是绕开这个网站的下载
- 更改pod spec主仓库源
在项目的Podfile文件顶部加一句source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git'
,这段代码意思是使用清华大学的源去下载所有的pod spec
弊端:可能还会有某些仓库无法下载(由于源的同步时间问题,还有比如第三方仓库指定仓库源的问题,导致还有可能无法下载)
- 更改无法下载的spec的源
比如我们碰到libwebp
无法下载,那么我们看一下主仓库的源在哪,执行pod repo
看到path是/Users/apple/.cocoapods/repos/trunk
,这个path就是cocoapods的trunk仓库地址,那么我们就到这个path下,然后在到Specs
目录下,依次到1 -> 9 -> 2 -> libwep
(为什么是1,9,2,因为这个是libwepb的16进制算出来的,这是cocoapods为了避免单个文件夹暴大引起搜索缓慢而解决的),然后找到指定的无法下载的版本(我们这里是1.1.0) 然后去更改这个路径,将其更改为https://github.com/webmproject/libwebp.git
更改完毕,保存,然后再去项目目录执行pod install
即可
弊端:会引起Podfile.lock文件的变化, 比如: 这个时候,我们再把之前改的spec source路径revert掉,再执行pod install就好啦.(由于cocoapods cache已经有我们刚刚install掉的缓存了,所以revert掉是没问题的,记得不要清空这个缓存就好啦)
- 将别人已经下载好的spec发一份过来
这个解决方案是借助于cocoapods的缓存,跟上一步解决思路是差不多的
到/Users/apple/Library/Caches/CocoaPods/Pods/Release/libwebp (路径依据每个人的电脑名而不同)目录去,将别人发过来的spec仓库放在这里就好了, 然后再执行pod install即可
命令行科学上网
通常来说在终端使用 Homebrew、git、npm 等命令时,总会因为网络问题而安装失败
这时候就需要配置代理,通过设置 http_proxy、https_proxy,可以让终端走指定的代理
配置脚本如下,在终端直接执行,只会临时生效:
export http_proxy=http://127.0.0.1:7890
export https_proxy=$http_proxy
根据自己的实际情况来
便捷脚本
function proxy_on() {
export http_proxy=http://127.0.0.1:7890
export https_proxy=\$http_proxy
echo -e "终端代理已开启。"
}
function proxy_off(){
unset http_proxy https_proxy
echo -e "终端代理已关闭。"
}
需要把脚本写入.bash_profile 或.zprofile,这样就可以永久生效
应该写入哪个文件,请根据命令 echo $SHELL
返回结果判断:
/bin/bash => .bash_profile
/bin/zsh => .zprofile
去相应的文件里写入脚本即可
本文首次发布于 孙忠良 Blog, 作者 [@sunzhongliang] , 转载请保留原文链接.