作者Talent•C
转载请注明出处
前言
很多时候, 由于项目中用到的第三方框架较多, 如果每个框架都手动管理的话, 会比较麻烦,需要自己手动去下载和更新;除此之外也会造成Git服务器中项目过大。如果能有什么工具能解决这些恼人的问题,那将“善莫大焉”。所以,你需要 CocoaPods。
CocoaPods 应该是 iOS 最常用最有名的类库管理工具了,上述两个烦人的问题,通过 CocoaPods,只需要一行命令就可以完全解决,当然前提是你必须正确设置它。重要的是,绝大部分有名的开源类库,都支持 CocoaPods。所以,作为 iOS 程序员的我们,掌握 CocoaPods 的使用是必不可少的基本技能了。
如何下载和安装CocoaPods?
在安装 CocoaPods 之前,首先要在本地安装好 Ruby环境。至于如何在Mac中安装好 Ruby环境,请百度一下,这里就不再解释了。
假如你在本地已经安装好 Ruby环境,那么下载和安装 CocoaPods 将十分简单,只需要一行命令。在 Terminator(也就是终端) 中输入以下命令(注意,本文所有命令都是在终端中输入并运行的)。
$ sudo gem install cocoapods
如果你在国内,在终端中敲入这个命令之后,会发现半天没有任何反应。原因无他,因为那堵墙阻挡了cocoapods.org。此时我们有两种方式解决:
- 用淘宝的Ruby镜像来访问cocoapods。
- 翻墙后继续。
我们这里使用淘宝的Ruby镜像来访问cocoapods。按照下面的顺序在终端中敲入依次敲入命令:$ gem sources –remove https://rubygems.org/
//等上面的命令执行完后 在输入此命令
$ gem sources -a http://ruby.taobao.org/
验证你的Ruby镜像是并且仅是taobao,可以用以下命令查看:
$ gem sources -l
你会在终端里看到如下信息
CURRENT SOURCES
http://ruby.taobao.org/
切换完淘宝镜像后,我们再重头安装 CocoaPods。再次在终端中运行:
$ sudo gem install cocoapods
等上十几秒钟,CocoaPods就可以在你本地下载并且安装好了,安装好后输入以下命令查看其版本号:
$ pod –version
如何使用CocoaPods?
CocoaPods 使用起来也非常简单,通过几行命令就可以完美的操控它。
我们通过 CocoaPods 搜索一下我们非常熟悉的 AFN, 通过下面的命令就可以搜索你想要搜索的第三方库;
$ pod search 第三方库的名字
我们输入:
$ pod search AFNetworking
因为首次搜索, CocoaPods 会将一些信息clone到本地 “/Users/用户名/.cocoapods/repos/master/“ 目录下。所以时间会稍微有点慢,等待一会,就可以看到关于AFNetworking类库的一些信息。
下面我们来看看如何将 CocoaPods 与 Xcode 结合使用
我们进入到 工程所在的目录下 (在终端中使用 cd命令);
新建 Podfile 文件。命令如下:
$ vim Podfile
然后在Podfile文件中输入以下文字:
platform :ios, ‘8.0’
target ‘Test01’ do
pod ‘AFNetworking’, ‘~> 3.1.0’
end结束输入并保存 Podfile 文件:
在输入状态下 按键盘上的 “esc” 键 然后 输入 :wq 再按回车, 即可退出并保存。
这时候,你会发现你的项目目录中,出现一个名字为 Podfile 的文件,而且文件内容就是你刚刚输入的内容。注意,Podfile 文件应该和你的工程文件xxx.xcodeproj在同一个目录下,现在你就可以利用 CocoPods 下载 AFNetworking 类库了。同样还是在终端进入当前项目的根目录,运行以下命令:
$ pod install
运行此命令后终端会输出以下信息
chuliangliang$ pod install
Analyzing dependencies
Downloading dependencies
Installing AFNetworking (3.1.0)
Generating Pods project
Integrating client project
[!] From now on useTest01.xcworkspace
.
到此,AFNetworking 就已经通过 CocoPods 下载完毕了, 打开 Test01.xcworkspace
并且以后也要通过 Test01.xcworkspace
来打开工程,我们在项目使用 AFNetworking 可以使用两种方式引入 #import <AFNetworking.h>
或者 #import "AFNetworking.h"
。
细心的你会发现, 当你在工程中 import
AFNetworking 时没有任何提示了,我们可以做出以下修改:
选择工程的target(就是左边你的工程target)——> BuildSettings ——> search Paths 下的 User Header Search Paths
添加一项 $(PODS_ROOT) 并在后方选在 选择:recursive (会在相应的目录递归搜索文件就可以使得项目中可以添加第三方库头文件时自动联想)。
CocoPods与Git一起使用的问题
很多时候我们的工程使用Git
进行版本管理,同时又使用 CocoPods 管理第三方库,此时,我们就考虑 pod 的哪些部分需要纳入 Git 管理,哪些不需要,这样我们就降低了Git服务器的文件大小。首先就是关于 pod 的哪部分内容需要纳入 Git 管理, pod 文件需要纳入git
管理的只需要两个文件, Podfile 和 Podfile.lock.其次就是剩下的 pod 文件如何忽略, 这个就得从.ignore
文件着手了 打开.ignore
文件,在 ignore
加入一行 “Pods/“ 这样 pod 框架下得文件就不会再纳入管理,在其他开发人员使用时, 克隆代码后只需要做一下 pod update 或者 pod install 即可。
总结
当我们将现有工程追加 CcocoaPods 时可能会出现一些警告, 原因就是因为之前的工程修改或增加一些设置,而引用 CcocoaPods 时也会做一些默认的修改,从而导致出现警告, 我们只需要将这些警告的地方按照工程需要手动合并或者修改一下就可以,具体做法百度一大堆。当我们初次使用工程时使用终端进入工程的根目录执行 pod install 命令, 以后每次修改 Podfile 文件后只需要执行 pod update 即可完成更新。