CocoaPods使用详细说明

 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

 

[objc]  view plain copy print ? 在CODE上查看代码片 派生到个人代码片
 
  1. .8 (020-85) [universal-darwin2]  
  2. ritekiMac-mini:PodTest lucky$   


b 更新rubybash

 

终端输入以下命令(把Ruby镜像指向taobao,避免被墙,你懂得)app

gem sources --remove https://rubygems.org/ 
gem sources -a http://ruby.taobao.org/ 
gem sources -l  (用来检查使用替换镜像位置成功)

 

[objc]  view plain copy print ? 在CODE上查看代码片 派生到个人代码片
 
  1. ritekiMac-mini:~ lucky$ gem sources --remove:  
  2. //rubygems.org/ removed from sources :  
  3. //ruby.taobao.org/ added to sources  ***  

 


二、下载安装CocoaPods

终端输入:

 

[html]  view plain copy print ? 在CODE上查看代码片 派生到个人代码片
 
  1. 1 gem installed  

 


这样就下载安装好了CocoaPods

 


三、使用CocoaPods

a  新建一个项目,名字PodTest



b  终端中,cd到项目总目录(注意:包含PodTest文件夹、PodTest.xcodeproj、PodTestTest的那个总目录)

 

[objc]  view plain copy print ? 在CODE上查看代码片 派生到个人代码片
 
  1. cd /Users/lucky/Desktop/PodTest   


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 点便可:

  1. 使用 CocoaPods 生成的 .xcworkspace 文件来打开工程,而不是之前的 .xcodeproj 文件。
  2. 每次更改了 Podfile 文件,你须要从新执行一次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]  // ... 如下省略若干行 

关于 Podfile.lock

当你执行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文件,首先经过以下命令初始化一个podspec文件:

1
pod spec create your_pod_spec_name

该命令执行以后,CocoaPods 会生成一个名为your_pod_spec_name.podspec的文件,而后咱们修改其中的相关内容便可。

具体步骤能够参考这两篇博文中的相关内容:

使用私有的 pods

咱们能够直接指定某一个依赖的podspec,这样就可使用公司内部的私有库。该方案有利于使企业内部的公共项目支持 CocoaPods。以下是一个示例:

1
pod 'MyCommon', :podspec => 'https://yuantiku.com/common/myCommon.podspec' 

不更新 podspec

CocoaPods 在执行pod installpod 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 项目中。发现的一些技术细节有:

  1. Pods 项目最终会编译成一个名为 libPods.a 的文件,主项目只须要依赖这个 .a 文件便可。
  2. 对于资源文件,CocoaPods 提供了一个名为 Pods-resources.sh 的 bash 脚本,该脚本在每次项目编译的时候都会执行,将第三方库的各类资源文件复制到目标目录中。
  3. CocoaPods 经过一个名为 Pods.xcconfig 的文件来在编译时设置全部的依赖和参数。

愿你们玩得开心~

而后从新编辑Podfile文件,按照以前的步骤,把更多的库都导入项目!

 若是类库有更新,查看更新配置并执行pod update便可简单完成了,今后从手动更新繁重的体力劳动中解脱出来。

简单小结一下:

- 安装CocoaPods
- 新建项目并在工程根目录下新建Podfile文件,配置须要管理的第三方库
- 运行pod install下载安装第三方库

 

http://blog.csdn.net/lizhongfu2013/article/details/26384029