CocoaPods的安装和使用

CocoaPods的安装

$ sudo gem install -n /usr/local/bin cocoapods

ERROR: Could not find a valid gem 'cocoapods' (>= 0), here is why:Unable to download data from https://rubygems.org/ - Errno::ETIMEDOUT: Operation timed out - connect(2) (https://rubygems.org/latest_specs.4.8.gz)ERROR: Possible alternatives: cocoa pods
这是因为ruby的软件源rubygems.org因为使用亚马逊的云服务,被我天朝屏蔽了,需要更新一下ruby的源,过程如下:
$ gem sources -l (查看当前ruby的源) $ gem sources --remove https://rubygems.org/ $ gem sources -a https://gems.ruby-china.org/ $ gem sources -l

这里使用的是国内最新镜像源(淘宝的Ruby镜像已经不更新了)
如果gem太老,可以尝试用如下命令升级gem
$ sudo gem update --system

升级成功后会提示: RubyGems system software updated
然后重新执行安装下载命令
$ sudo gem install -n /usr/local/bin cocoapods

接下来进行安装,执行:
$ pod setup

Terminal会停留在 Setting up CocoaPods master repo 这个状态一段时间,是因为要进行下载安装,而且目录比较大,需要耐心等待一下.如果想加快速度,可使用cocoapods的镜像索引.(文章末尾附使用镜像索引的方法)
安装成功后,你会看到:

CocoaPods的安装和使用
文章图片
Cocoapods的使用 进入工程所在的目录(工程根目录)
执行命令
touch Podfile

这句是说新建一个名为Podfile的文件(不能写成别的名字,也可以自己在工程根目录里面直接新建)
然后对改文件进行编辑,执行命令
open -e Podfile

【CocoaPods的安装和使用】第一次执行这个命令,会有一个空白文件打开,可以先放在一边,
Podfile文件的格式应该如下:
platform :ios, '7.0'target 'dongguantou' dopod 'AFNetworking', '~> 2.5.4'#网络库 pod 'SDWebImage', '~> 3.7.3'#网络图片 pod 'MJRefresh', '~> 3.0.8'#下拉上拉 pod 'MJExtension', '~> 3.0.7'#扩展 pod 'FMDB', '~> 2.5'#数据库操作 pod 'OpenUDID', '~> 1.0.0'#获取设备唯一标示符end

Buyer 是 target的名字 也就是你的项目名
需要注意的几点:platform那一行,ios三个字母都要小写,而且与前面的冒号之间不能有间隔,后面的版本号也可以不写,但是有些开源库对版本是有要求的,比如要在6.0以上才能运行,遇到这样的开源库就需要写上版本号。
platform下面就是Cocoapods需要集成的开源库,根据你的需要确定集成那些库。
举个例子:
我要集成AFNetworking这个库类,需要在Cocoapods里面先搜索是否有需要的库,可以在Terminal中输入:
pod search AFNetworking

回车之后就可以看到和你搜索的关键字相关的一些库类,如图:

CocoaPods的安装和使用
文章图片
其中第一个就是我们需要的,把pod ‘AFNetworking’, ‘~>2.5.3’
那一行复制到我们的Podfile文件中,保存修改。
然后在Terminal中执行 :
pod install

这样,AFNetworking就已经下载完成并且设置好了编译参数和依赖,以后使用的时候切记如下两点:
1.从此以后需要使用Cocoapods生成的 .xcworkspace文件来打开工程,而不是使用以前的.xcodeproj文件
2.每次更改了Podfile文件,都需要重新执行一次pod update命令
ps:当执行pod install之后,除了Podfile,还会生成一个名为Podfile.lock的文件,它会锁定当前各依赖库的版本,之后即使多次执行pod install也不会更改版本,只有执行pod update才会改变Podfile.lock.在多人协作的时候,这样可以防止第三方库升级时候造成大家各自的第三方库版本不一致。所以在提交版本的时候不能把它落下,也不要添加到.gitignore中.
参考:
http://www.jianshu.com/p/6e5c0f78200a
http://blog.sina.com.cn/s/blog_5971cdd00102wlkk.html

    推荐阅读