CocoaPods 是什么?
CocoaPods 是一个负责管理 iOS 项目中第三方开源库的工具。CocoaPods 的项目源码在 GitHub( https://github.com/CocoaPods )上管理。
开发 iOS 项目不可避免地要使用第三方开源库,在使用第三方库时,除了需要导入源码,集成这些依赖库还需要我们手动去配置,还有当这些第三方库发生了更新时,还需要手动去更新项目,这就显得非常麻烦。
而 CocoaPods 的出现使得我们可以节省设置和更新第三方开源库的时间,通过 CocoaPods,我们可以将第三方的依赖库统一管理起来,配置和更新只需要通过简单的几行命令即可完成。
为什么要使用 CocoaPods?
在使用 CocoaPods 之前,开发项目需要用到第三方开源库的时候,我们需要:
-
把开源库的源代码复制到项目中
-
添加一些依赖框架和动态库
-
设置 -Objc,-fno-objc-arc 等参数
-
管理它们的更新
在使用 CocoaPods 之后,我们只需要把用到的开源库放到一个名为 Podfile 的文件中,然后执行 pod update 就可以了,CocoaPods 就会自动将这些第三方开源库的源码下载下来,并且为我们的工程设置好相应的系统依赖和编译参数。
CocoaPods 的原理
CocoaPods 的原理是将所有的依赖库都放到另一个名为 Pods 的项目中,然后让主项目依赖 Pods 项目,这样就把源码管理工作从主项目移到了 Pods 项目中。
第三方库会被编译成 .a 静态库或者 .framwork 的动态链接库供我们真正的工程使用。
CocoaPods 会将所有的第三方库以 target 的方式组成一个名为 Pods 的工程,该工程就放在刚才新生成的 Pods 目录下。整个第三方库工程会生成一个名称为 libPods.a 的静态库供我们的工程使用。
对于资源文件,CocoaPods 提供了一个名为 Pods-resources.sh 的 bash 脚本,该脚本在项目每次编译的时候都会执行,将第三方库的各种资源文件复制到目标目录中。
原来的工程设置已经被更改了,这时候我们直接打开原来的工程文件去编译就会报错。我们的工程和第三方库所在的 Pods 工程会被以一个新生成的 workspace 的形式组织和管理,方便我们直观的管理工程和第三方库。
CocoaPods 通过一个名为 Pods.xcconfig 的文件来在编译时设置所有的依赖和参数。
CocoaPods 的核心组件
CocoaPods 是用 Ruby 写的,并划分成了若干个 Gem 包。
与 CocoaPods 相关的两个目录:
~/.CocoaPods/repos/:这个目录存储远端的 podspec 文件到本地。master 是所有第三方的 podspec 索引文件。其它的是我们自定义的 podspec 索引文件。
~/Library/Caches/CocoaPods/:这个目录就是缓存文件的存储目录。
CocoaPods 在解析执行过程中最重要的几个包的路径分别是:CocoaPods/CocoaPods、CocoaPods/Core 和 CocoaPods/Xcodeproj。
CocoaPods/CocoaPods:这是面向用户的组件,每当执行一个 pod 命令时,这个组件将被激活。它包括了所有实用 CocoaPods 的功能,并且还能调用其它 Gem 包来执行任务。
CocoaPods/Core:Core Gem 提供了与 CocoaPods 相关的文件(主要是 Podfile 和 Podspecs)的处理。
Podfile:该文件用于配置项目所需要的第三方库,它可以被高度定制。
Podspecs:该文件描述了一个库将怎样被添加进工程中。.podspec 文件可以标识该第三方库所需要的源码文件、依赖库、编译选项,以及其他第三方库需要的配置。
CocoaPods/Xcodeproj:这个包负责处理工程文件,它能创建以及修改 .xcodeproj 文件和 .xcworkspace 文件。它也可以作为一个独立的包使用,当你要编写修改项目文件的脚本时,可以考虑使用 CocoaPods/Xcodeproj。
CocoaPods 的安装
安装cocoapods必须要安装Ruby,安装Ruby之前需要安装xcode,这是因为安装Ruby需要UNIX环境的语言包,而xcode会帮我们安装好.
安装Ruby,则需要安装RVM,
打开终端
$ curl -L [https://get.rvm.io](https://get.rvm.io) | bash -s stable
如果有error
$ curl -L https://get.rvm.io | bash -s stable
期间会自动通过homebrew安装依赖包,一段时间后就可以成功安装好 RVM。
然后,载入 RVM 环境
$ source ~/.rvm/scripts/rvm
检查一下是否安装正确
$ rvm -v
如果出现跟下面类似的字符,则表明安装正确
rvm 1.29.2 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io/]
另外,安装成功后每次想要查看,都必须重复载入RVM环境
用 RVM 安装 Ruby 环境
列出已知的ruby版本
$ rvm list known
可以选择现有的rvm版本来进行安装(假设rvm 2.4版本)
$ rvm install 2.4(可能需要管理员权限,使用sudo. $ sudo rvm install 2.4)
等一会,就已经把Ruby环境成功的安装到了Mac OS X上
接下来就是CocoaPods的安装
这时候,你再次在终端中运行:
$ sudo gem install cocoapods
等上一会,CocoaPods就可以在你本地下载并且安装,使用方法不过多赘述.
最后,希望这篇文章能帮到你。
网友评论