CocoaPods简介
什么是CocoaPods?每种语言发展到一个阶段,就会出现相应的依赖管理工具。好比Java 语言的 Maven,nodejs 的 npm,Android的grandle。而对于ios平台来说,CocoaPods是ios开发平台一个非常流行的第三方库管理工具。在开发过程中,根据项目复杂程度,通常我们会需要外链很多的第三方库。而添加这些第三方库的过程有时候会变成一场灾难。因此使用CocoaPods来代替我们管理这些库,将可以大幅缩短我们的开发时间。
CocoaPods项目的源码 在 Github 上管理。该项目开始于 2011 年 8 月 12 日,经过多年发展,现在已经成为 iOS 开发事实上的依赖管理标准工具。在使用CocoaPods的时候我们并不需要关注它的原理,当我们需要github上的某个开源库的时候,我们使用CocoaPods添加到我们的项目即可。
CocoaPods原理
CocoaPods的原理是将所有的依赖库都放到另一个名为Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。
CocoaPods安装与使用
Ruby
CocoaPods可以很方便的使用Mac自带的RubyGems安装(Mac系统默认安装了Ruby环境),如果不确定自己系统中是否有Ruby的,可以使用ruby -v来查看,如果有版本信息说明已经安装。
当然,系统的ruby是比较老的,我们可以对其进行升级。在终端输入命令:
gem update --system
如果出现上面的情况,表明你没有权限去升级Ruby。这时候我们需要使用下面的命令,并输入密码。
sudo gem update --system
当然,笔者这里已经是最新的了。
CocoaPods安装
CocoaPods的安装是非常简单的,但是需要注意的是ruby的软件源rubygems.org因为使用亚马逊的云服务,好像被我天朝隔离了。所以国内在安装的时候一般使用国内的镜像。
1,首先查看当前ruby的源:
gem sources -l
2,移除现有的Ruby镜像:
gem sources --remove https://rubygems.org/
3,添加国内最新镜像源(不过貌似淘宝的Ruby镜像已经不更新,所以还是建议翻墙)
gem source -a https://gems.ruby-china.org/
4,再次查看当前ruby的源
gem sources -l
如果出现如下字样,说明ruby的软件源已经设置OK了。
*** CURRENT SOURCES ***
https://ruby.taobao.org/
5,安装CocoaPods,安装命令如下:
sudo gem install cocoapods
安装过程中,常见的错误如下:
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/xcodeproj
解决方案1:
执行下面的命令并重启。
sudo nvram boot-args="rootless=0"
sudo reboot
此时,在执行安装命令:
sudo gem install cocoapods -V
如果依旧有错误,使用第二个方法:
sudo gem install -n /usr/local/bin cocoapods
pod setup
当出现Setup completed的时候,说明CocoaPods安装成功。
注:当我们输入命令pod setup之后,界面卡住不动了,说明Cocoapods在将它的信息下载到 ~/.cocoapods里。我们可以使用命令command+n新建一个终端窗口,执行cd ~/.cocoapods/进入到该文件夹下,然后执行du -sh *来查看文件大小,每隔几分钟查看一次
CocoaPods使用
首先我们使用命令搜索下AFNetworking库,命令如下:
pod search AFNetworking
不出意外的话,会报错。
这是因为之前pod search的时候生成了缓存文件search_index.json,执行命令来删除该文件,命令如下:
rm ~/Library/Caches/CocoaPods/search_index.json
然后再次输入命令“pod search AFNetworking”进行搜索,这时会提示Creating search index for spec repo ‘master’..,然后等待一会就会有结果了。
创建Podfile文件
在工程中创建一个Podfile文件,先定位到项目目录下,然后使用命令创建Podfile文件,命令如下:
touch Podfile
然后你在你的工程目录下可以看到多了一个Podfile文件。
然后,使用vim编辑Podfile文件。
进来之后紧接着按键盘上的英文’i’键,下面的”Podsfile” 0L, 0C将变成– INSERT –。然后就可以编辑文字了,输入以下文字了。
platform :ios, '10.3'
target 'weibo' do
pod "AFNetworking", "~> 3.1.0"
end
注:’weibo’就是你自己的工程名字,platform :ios, ‘8.0’代表当前AFNetworking支持的iOS最低版本是iOS 7.0, ‘~> 3.1.0’代表要下载的AFNetworking版本是3.1.0及以上版本。
有人问,那么怎么保存输入的内容到Podfile文件中呢?先按左上角的esc键,再按:键,再输入wq,点击回车,就保存并退出去了。
下载库到Xcode中
在终端使用命令把库下载到Xcode中。命令如下:
pod install
当我们再次打开工程目录会看到多了一个后缀名为.xcworkspace文件。以后打开工程就双击这个文件打开了,而不再是打开.xcodeproj文件。
到此,关于CocoaPods的使用就讲解完了。
附件
现在Podspec文件都托管在https://github.com/CocoaPods/Specs。第一次执行pod setup时,CocoaPods会将这些podspec索引文件更新到本地的~/.cocoapods目录下,当我们想在国内的服务器建立了Cocoapods索引库的时候,我们可以按照如下的方法:
pod repo remove master
pod repo add master https://gitcafe.com/akuandev/Specs.git
pod repo update
例如,将以上代码中的 https://gitcafe.com/akuandev/Specs.git
替换成 http://git.oschina.net/akuandev/Specs.git 即可使用oschina上的镜像。
参考:http://www.jianshu.com/p/b64b4fd08d3c