OC

CocoaPods Error installing解决方案

Posted by sunzhongliang on January 10, 2021

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] , 转载请保留原文链接.