1、概要html
iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods)能够用来方便的统一管理这些第三方库。ios
2、安装git
因为网上的教程基本都大同小异,但细节之处还不是很完善,因此借机会在这里补充下:github
注:要使用CocoaPods,那就要下载安装它,而下载安装CocoaPods须要Ruby环境json
一、Ruby环境搭建vim
当前安装环境为Mac mini 10.8.5。Mac OS自己自带Ruby,但仍是更新一下保险,由于我第一次安装在没有更新Ruby的状况下就失败了。xcode
a 查看下当前ruby版本:打开终端输入 ruby -v(确实安装了,不过用这个版本接下来工做失败了,因此更新下ruby)ruby
b 更新rubybash
终端输入以下命令(把Ruby镜像指向taobao,避免被墙,你懂得)app
gem sources --remove https://rubygems.org/
gem sources -a http://ruby.taobao.org/
gem sources -l (用来检查使用替换镜像位置成功)
二、下载安装CocoaPods
终端输入:
这样就下载安装好了CocoaPods
三、使用CocoaPods
a 新建一个项目,名字PodTest
b 终端中,cd到项目总目录(注意:包含PodTest文件夹、PodTest.xcodeproj、PodTestTest的那个总目录)
c 创建Podfile(配置文件)
接着上一步,终端输入 vim Podfile
键盘输入 i,进入编辑模式,输入
platform :ios, '7.0'
pod 'MBProgressHUD', '~> 0.8'
而后按Esc,而且输入“ :”号进入vim命令模式,而后在冒号后边输入wq
注意:键盘输入 :后,才能输入wq。回车后发现PodTest项目总目录中多一个Podfile文件
激动人心的时刻到了:肯定终端cd到项目总目录,而后输入 pod install,等待一会,大约3分钟。
查看项目根目录:
注意:如今打开项目不是点击 PodTest.xodeproj了,而是点击 PodTest.xcworkspace
如今,你的全部第三方库都已经下载完成而且设置好了编译参数和依赖,你只须要记住以下 2 点便可:
pod update
命令。
打开项目后看到项目结构而且测试一下:
运行结果:
补充:
一、CocoaPods的基本安装及使用都详细的说明了,但还有一些补充,当须要同时导入多个第三方时候怎么办 ?
这就须要修改Podfile了,就是用vim编辑的那个保存在项目根目录中的文件,修改完了Podfile文件,须要从新执行一次pod install命令。
例如:
platform :ios
pod 'JSONKit', '~> 1.4'
pod 'AFNetworking', '~> 2.0'
你若是不知道 cocoaPods 管理的库中,是否有你想要的库,那么你能够经过 pod search 命令进行查找,如下是我用 pod search json 查找到的全部可用的库
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ pod search json -> AnyJSON (0.0.1) Encode / Decode JSON by any means possible. - Homepage: https://github.com/mattt/AnyJSON - Source: https://github.com/mattt/AnyJSON.git - Versions: 0.0.1 [master repo] -> JSONKit (1.5pre) A Very High Performance Objective-C JSON Library. - Homepage: https://github.com/johnezang/JSONKit - Source: git://github.com/johnezang/JSONKit.git - Versions: 1.5pre, 1.4 [master repo] // ... 如下省略若干行 |
当你执行pod install
以后,除了 Podfile 外,CocoaPods 还会生成一个名为Podfile.lock
的文件,Podfile.lock 应该加入到版本控制里面,不该该把这个文件加入到.gitignore
中。由于Podfile.lock
会锁定当前各依赖库的版本,以后若是屡次执行pod install
不会更改版本,要pod update
才会改Podfile.lock
了。这样多人协做的时候,能够防止第三方库升级时形成你们各自的第三方库版本不一致。
CocoaPods 的这篇 官方文档 也在What is a Podfile.lock
一节中介绍了Podfile.lock
的做用,而且指出:
This file should always be kept under version control.
咱们能够为本身的开源项目建立podspec
文件,首先经过以下命令初始化一个podspec
文件:
1
|
pod spec create your_pod_spec_name |
该命令执行以后,CocoaPods 会生成一个名为your_pod_spec_name.podspec
的文件,而后咱们修改其中的相关内容便可。
具体步骤能够参考这两篇博文中的相关内容:
咱们能够直接指定某一个依赖的podspec
,这样就可使用公司内部的私有库。该方案有利于使企业内部的公共项目支持 CocoaPods。以下是一个示例:
1
|
pod 'MyCommon', :podspec => 'https://yuantiku.com/common/myCommon.podspec' |
CocoaPods 在执行pod install
和pod update
时,会默认先更新一次podspec
索引。使用--no-repo-update
参数能够禁止其作索引更新操做。以下所示:
1
2 |
pod install --no-repo-update pod update --no-repo-update |
若是你想让 CococaPods 帮你生成第三方库的帮助文档,并集成到 Xcode 中,那么用 brew 安装 appledoc 便可:
1
|
brew install appledoc |
关于 appledoc,我在另外一篇博客 《使用 Objective-C 的文档生成工具:appledoc》 中有专门介绍。它最大的优势是能够将帮助文档集成到 Xcode 中,这样你在敲代码的时候,按住 opt 键单击类名或方法名,就能够显示出相应的帮助文档。
大概研究了一下 CocoaPods 的原理,它是将全部的依赖库都放到另外一个名为 Pods 项目中,而后让主项目依赖 Pods 项目,这样,源码管理工做都从主项目移到了 Pods 项目中。发现的一些技术细节有:
愿你们玩得开心~
而后从新编辑Podfile文件,按照以前的步骤,把更多的库都导入项目!
若是类库有更新,查看更新配置并执行pod update便可简单完成了,今后从手动更新繁重的体力劳动中解脱出来。
简单小结一下:
- 安装CocoaPods
- 新建项目并在工程根目录下新建Podfile文件,配置须要管理的第三方库
- 运行pod install下载安装第三方库
http://blog.csdn.net/lizhongfu2013/article/details/26384029