iOS开发中,大多数情况下,我们都须要集成一些第三方依赖库。对于一个稍大的项目,用到的第三方依赖库的数量也很可观。CocoaPods是objective-c第三方库管理工具,方便第三方库的管理。另外还有Carthage也是可以用来管理iOS第三方库的,这里就不多说了。
基本的步骤gem install cocoapods -> pod setup -> pod init -> edit Podfile -> pod install -> open xcworksapce
(期间出现对应的问题 就对应解决)
这里着重解析下pod常用的几个文件夹:
/Users/{yourName}/Library/Caches/CocoaPods
这个位置放着系统的pod git clone成功后的三方库的缓存
大概的逻辑: pod install -> 下载SDWebImage到Caches里面 -> 根据podSpec copy Caches内的库到项目Pods里面进行使用/Users/{yourName}/.cocoapods/repos
这个位置存放着cocoapods的中心索引表,主要得repo 是 master, 也必须要有master才可以让pod进行执行
同时你新建的私有repo也会处于这个位置项目文件下的 Pods
根据Podfile生成的文件内容,里面包含了源码
所以在网络极端情况(自己特别难更新的话),终极技能是,直接去复制队友的Pods文件到自己项目文件,然后pod install就行...,或者也可以将队友的Caches文件复制过去,
安装
为了防止gem安装更新失败,因此先替换为
https://gems.ruby-china.org/
而不再是国内的淘宝的镜像源,否则在天朝的网络限制中会很慢很慢请别弄混乱一个东西,这里替换的ruby源的地址,是为了安装cocoapods这个库管理软件,安装目录默认在/Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/, 后面说替换的coding等spec.git,是指替换cocoapods的中心索引表的git地址
请尽可能用比较新的 RubyGems 版本,建议 2.6.x 以上。
$ gem update --system # 这里请翻墙一下
$ gem -v
2.6.3
$ gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
$ gem sources -l
https://gems.ruby-china.org
# 确保只有 gems.ruby-china.org
使用gem安装cocoapods
sudo gem install cocoapods //1.0正式版本已经发布,规则有一点的变化
如果gem出现错误
Unable to resolve dependencies: cocoapods requires cocoapods-core (= 0.35.0), claide (~> 0.7.0), xcodeproj (~> 0.20.2), cocoapods-downloader (~> 0.8.0)
先更新gem然后重新开始
sudo gem update --system //没什么问题就不要更新这个了,容易出现问题,更新后请重新设置下镜像源
sudo gem install cocoapods 出现 Operation not permitted - /usr/bin/xcodeproj
sudo gem install -n /usr/local/bin cocoapods
如果还有问题 请看链接
执行$ pod search AFNetworking
时报错
[!] Unable to find a pod with name, author, summary, or description matching AFNetworking
解决方式:
1· 先移除掉本地的master,在终端输入pod repo remove master
然后转到路径下,在终端输入
cd ~/.cocoapods/repos
再把github上的spec下载下来,替换路径~/.cocoapods/repos目录下的master,在终端输入命令:
git clone --depth 1 https://github.com/CocoaPods/Specs.git master
,等待下载完毕但是再次输入
pod search AFNetworking
依然是提示找不到,是因为之前pod search的时候生成了search_index.json,把它删除掉即可输入命令:rm ~/Library/Caches/CocoaPods/search_index.json
回车,再次输入pod search AFNetworking
即可。OK,现在再执行
pod install --no-repo-update
就能够正确更新这些第三方库了