关于cocoapods网上有很多说明了.
首先发几个我认为有用的关于coocapods学习的网址:
官方网址:http://guides.cocoapods.org/ 这里有guideline
几个比较原版的博客:
http://code4app.com/spark/5274b66e6803fab041000000
http://blog.devtang.com/blog/2012/12/02/use-cocoapod-to-manage-ios-lib-dependency/
CocoaPods 是一个第三方类库的管理工具,在GitHub上有名的类库都可以使用cocoapods方式集成,它节省了我们手动集成的时间,只需要几行命令就可以方便集成.
首先安装cocoapods.
CocoaPods需要ruby环境,幸运的是所有的mac电脑都已经预装了ruby,所以你需要更新一下你的RubyGems(如果你的系统版本低于OS X Lion)
只需要在终端输入如下命令就可以更新你的RubyGems:
sudo gem update --system
然后使用命令安装
sudo gem install cocoapods
ok,成功后我们新建一个测试工程.
然后再工程目录与.xcodeproj文件同一目录下创建一个名字为 Podfile的文件,文件没有后缀,文件名是特定的,不能修改,也可以使用终端命令 创建,在终端进入工程目录,输入
touch Podfile
然后就可以创建这个工程的pod来管理类库了
在终端输入 pod install
创建完成后在工程目录会多出几个文件,其中有个.xcworkspace的文件,今后我们就使用这个文件来打开工程进行开发
打开工程目录如下
然后可以在终端搜索你需要的类库,如
pod search AFNetworking
部分结果如下:
-> AFNetworking (2.0.3)
A delightful iOS and OS X networking framework.
pod 'AFNetworking', '~> 2.0.3'
- Homepage: https://github.com/AFNetworking/AFNetworking
- Source: https://github.com/AFNetworking/AFNetworking.git
- Versions: 2.0.3, 2.0.2, 2.0.1, 2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1, 2.0.0, 1.3.3, 1.3.2, 1.3.1, 1.3.0, 1.2.1,
1.2.0, 1.1.0, 1.0RC3, 1.0RC2, 1.0RC1, 1.0.1, 1.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1, 0.10.1, 0.10.0 [master
repo]
- Sub specs:
- AFNetworking/Serialization (2.0.3)
- AFNetworking/Security (2.0.3)
- AFNetworking/Reachability (2.0.3)
- AFNetworking/NSURLConnection (2.0.3)
- AFNetworking/NSURLSession (2.0.3)
- AFNetworking/UIKit (2.0.3)
紧接着打开Poddfile文件
在文件中第一行输入 platform:ios
第二行粘贴 结果的第二行 pod 'AFNetworking', '~> 2.0.3'
然后保存回到终端 输入 pod update
等待下载安装完就可以使用AFNetworking 类库了.
其他的类库使用方法一样,将pod 命令粘贴到 Podfile文件中 然后 使用 pod update 命令更新即可
更多的关于在Podfile文件中的语法,比如:
多target 比如 单元测试,添加语句
link_with 'cocoapods', 'cocoapodsTests'
如果想使用最新版本 不带 版本号
pod 'JSONKit'
使用某个版本 添加版本号
pod 'JSONKit', '3.2'
希望有条件使用版本 添加限制条件 比如
'> 0.1' , '>= 0.1' '< 0.1' '<= 0.1'
还有一个优化的操作符
- '~> 0.1.2' Version 0.1.2 and the versions up to 0.2, not including 0.2 and higher
- '~> 0.1' Version 0.1 and the versions up to 1.0, not including 1.1 and higher
- '~> 0' Version 0 and higher, this is basically the same as not having it.
可以参看官网guideline,比较全.