一、前记
尽管公司里的项目没有用到CocoaPods(综合考虑的结果),但最近想看看特定版本的库,用下CocoaPods还是方便一点。一年没用这个了,需要回顾一下,记下这篇,以后要用可以来看。
二、安装
1、可用的源
打开终端输入:
gem sources
如果是:
https://rubygems.org/
这个被墙了,用不了。需要换一个源,先删了没用的
sudo gem sources --remove (错误的源)
然后再添加正确的源:
sudo sources -a https://ruby.taobao.org/
2、安装CocoaPods
sudo gem install CocoaPods
这里需要等待安装
安装结束后,有提示,且
pod
输入pod 加回车,会有帮助显示,这表示安装成功
如果显示command not found 表示没有安装成功
3、使用CocoaPods
- 打开终端,输入:cd (空格) (项目拖进来)
- 输入pod init (为了生成podFile,已经有了就不用此步骤了)
- “#”是注释作用
- platform :ios, ‘8.0’表示最低版本兼容8.0
- use_frameworks! 支持swift语言
- 配置写法 pod ‘第三方方库名称’,这个配置 写在 target 和 end 之间
4、更新
本来是使用命令
pod update
由于被墙,需要使用下面这个命令更新
pod update --verbose --no-repo-update
三、问题来了
1、历史描述
CocoaPods是一个可以帮你集中管理第三方库的开源项目,运行在Ruby的环境下,基于GitHub托管优势,你可以很方便的查阅目前依赖于CocoaPods的资源
2、gem老化问题,可以试着升级gem
sudo gem update --system
3、使用CocoaPods镜像索引
所有的项目的Podspec文件都托管在 https://github.com/CocoaPods/Specs 第一次执行pod setup时,CocoaPods会将这些podspec索引文件更新到本地的 ~/.cocoapods/目录下,这个索引文件比较大,有80M左右。所以第一次更新时非常慢。
有人在gitcafe和oschina上建立了CocoaPods索引库的镜像,因为gitcafe和oschina都是国内的服务器,所以在执行索引更新操作时,会快很多。如下操作可以将CocoaPods设置成使用gitcafe镜像:
第一步:删除master
pod repo remove master
第二步:将以上代码中的 https://gitcafe.com/akuandev/Specs.git 替换成 http://git.oschina.net/akuandev/Specs.git 即可使用oschina上的镜像。
pod repo add master https://gitcafe.com/akuandev/Specs.git
第三步: 更新
4、镜像不可用问题
因为有人说淘宝源不能用了,虽然我现在使用时还能用,为了以防万一,还是要有解决方案
第一种安装:git clone方法安装cocoapods
在终端中,进入该目录
cd ~/.cocoapods/repos
若没有以上目录,执行下面指令,出现.cocoapods的目录后可以ctrl+c终止安装。sudo gem install cocoapods是常规的安装方法,不过现在只是用来建立一下.cocoapods目录。手动建立.cocoapods目录应该也是可以的,不过没试过。如果能进入~/.cocoapods/repos的目录就忽略下面一条指令。
sudo gem install cocoapods
克隆一个Specs库,在终端必须进入到~/.cocoapods/repos的目录才执行以下命令。
git clone https://github.com/CocoaPods/Specs
完成后,执行open .打开当前目录repos
open .
然后把Specs目录改名为master即可。(~/.cocoapods/repos的目录层级)
如果gitclone还慢的话,直接上 https://github.com/CocoaPods/Specs 点击下载。根据上面的目录结构图,放对了就好。
安装中可能遇到的问题:
运行pod后显示:"pod: command not found"的错误。赋予/usr/local/bin给予执行与读取权限,执行以下命令。若不行执行sudo chmod 777 /usr/local/bin/。
sudo chmod 700 /usr/local/bin/
安装cocoa pods后,在终端执行pod search第三方框架时出错:[!] Unable to find a pod with name, author, summary, ordescriptionmatching AFNetworking
解决方案:执行
rm ~/Library/Caches/CocoaPods/search_index.json
然后再执行pod search第三方框架
pod search afnetworking
按q退出搜索。
第二种安装:
添加新镜像 https://gems.ruby-china.org
gem sources -a https://gems.ruby-china.org/
安装:苹果系统升级 OS X EL Capitan 后改为
sudo gem install -n /usr/local/bin cocoapods
pod setup
更新gem
sudo gem update --system
新建文件 vim “Podfile” (终端vim文件 按 i 可编辑 ,esc 退出编辑,:wq 可保存退出)
vim Podfile
5、执行pod install还是pod update都卡
原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下:
pod install --verbose --no-repo-update
pod update --verbose --no-repo-update
6、搜索第三方出现-bash: pod: command not found的错误
解决方案:命令一:
sudo gem install -n /usr/local/bin cocoapods/
命令二:
sudo chmod +rx /usr/local/bin
7、上述第4点第一种方案,完全没有安装过的用户是没有~/.cocoapods目录的
可以采用第二种方案
四、https://gems.ruby-china.org/ 访问不了
使用sudo gem update --system更新时
错误为:
Error fetching https://gems.ruby-china.org/: bad response Not Found 404 (https://gems.ruby-china.org/specs.4.8.gz)
https://gems.ruby-china.org/ 访问不了
域名改为
所以替换 ruby-china 提供镜像,正确的操作是:
$ sudo gem update --system
$ gem sources --remove https://rubygems.org/
$ gem sources --remove https://ruby.taobao.org/ //如果安装了淘宝的镜像
//等有反应之后再敲入以下命令
gem sources -a https://gems.ruby-china.com/
为了验证你的Ruby镜像是并且仅是ruby-china,可以用以下命令查看:
$ gem sources -l
*** CURRENT SOURCES ***