CocoaPods是什么?
当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库,“子子孙孙无穷尽也”,这也许是比较特殊的情况。总之小编的意思就是,手动一个个去下载所需类库十分麻烦。另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载新版本,重新加入到项目中,十分麻烦。如果能有什么工具能解决这些恼人的问题,那将“善莫大焉”。所以,你需要 CocoaPods。
CocoaPods应该是iOS最常用最有名的类库管理工具了,上述两个烦人的问题,通过cocoaPods,只需要一行命令就可以完全解决,当然前提是你必须正确设置它。重要的是,绝大部分有名的开源类库,都支持CocoaPods。所以,作为iOS程序员的我们,掌握CocoaPods的使用是必不可少的基本技能了。
如何下载和安装CocoaPods?
在安装CocoaPods之前,首先要在本地安装好Ruby环境。至于如何在Mac中安装好Ruby环境,下面我们就介绍一下怎么安装 Ruby 环境
以下代码区域,带有 $ 打头的表示需要在控制台(终端)下面执行(不包括 $ 符号)
步骤0 - 安装系统需要的包
# For Mac
# 先安装 [Xcode](http://developer.apple.com/xcode/) 开发工具,它将帮你安装好 Unix 环境需要的开发包
步骤1 - 安装 RVM
RVM 是干什么的这里就不解释了,后面你将会慢慢搞明白。
$ curl -L https://get.rvm.io | bash -s stable
期间可能会问你sudo管理员密码,以及自动通过homebrew
安装依赖包,等待一段时间后就可以成功安装好 RVM。
然后,载入 RVM 环境(新开 Termal 就不用这么做了,会自动重新载入的)
$ source ~/.rvm/scripts/rvm
检查一下是否安装正确
$ rvm -v//点击回车之后出现了版本 就是安装正确
步骤2 - 用 RVM 安装 Ruby 环境
列出已知的ruby版本
$ rvm list known
可以选择现有的rvm版本来进行安装(下面以rvm 2.0.0版本的安装为例)
$ rvm install 2.0.0
同样继续等待漫长的下载,编译过程,完成以后,Ruby, Ruby Gems 就安装好了。
另附:
查询已经安装的ruby
$ rvm list
卸载一个已安装版本
$ rvm remove 1.9.2
步骤3 - 设置 Ruby 版本
RVM 装好以后,需要执行下面的命令将指定版本的 Ruby 设置为系统默认版本
$ rvm 2.0.0 --default
同样,也可以用其他版本号,前提是你有用 rvm install 安装过那个版本
这个时候你可以测试是否正确
$ ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin13.0.0]
$ gem -v 2.1.6
这样我们的就把Ruby成功安装了
由于在天朝有“墙”的存在,所以我们必须用淘宝的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/
这个时候就证明咱们的tao bao Ruby 镜像替换成功了
这时候,你再次在终端中运行:
$ sudo gem install cocoapods
如果执行sudo gem install cocoapods
出现错误:
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/xcodeproj
方法:查看~/.cocoapods/repo里是否有master,如果没有则之行下面这句:
$ pod setup
出现Setting up CocoaPods master repo,说明Cocoapods在将它的信息下载到 ~/.cocoapods里,我们可以cd 到该目录里,用du -sh *命令来查看文件大小,每隔几分钟查看一次,我的这个目录最终大小是349M。
然后我们在终端中再次之行
$ sudo gem install cocoapods
等上十几秒钟,CocoaPods就可以在你本地下载并且安装好了,不再需要其他设置。
如何使用CocoaPod利用CocoaPods,在项目中导入AFNetworking类库(在利用CocoaPods导入类库的时候需要先确认该类库支持CocoaPods)
首先,我们需要在我们的项目中加入CocoaPods的支持。先利用Xcode创建一个名字CocoaPodsDemo的项目,创建好之后我们就要先创建一个文件来控制CocoaPods该下载什么。这个文件就叫做“Podfile”(注意,一定得是这个文件名,而且没有后缀)。你创建一个Podfile文件,然后在里面添加你需要下载的类库,也就是告诉CocoaPods,“某某和某某和某某某,快到碗里来!”。注意:每个项目只需要一个Podfile文件。
我们先创建这个神奇的PodFile。在终端中进入(cd命令)你项目所在目录,然后在当前目录下,利用vim创建Podfile,运行:
$ vim Podfile
然后在Podfile文件中输入以下文字:
platform :ios, '7.0'
pod "AFNetworking", "~> 2.0"
这两句文字的意思是,当前AFNetworking支持的iOS最高版本是iOS 7.0, 要下载的AFNetworking版本是2.0。
然后保存退出。vim环境下,保存退出命令是:
:wq
这时候,你会发现你的项目目录中,出现一个名字为Podfile的文件,而且文件内容就是你刚刚输入的内容。注意,Podfile文件应该和你的工程文件.xcodeproj在同一个目录下。
这时候,你就可以利用CocoPods下载AFNetworking类库了。
还是在终端中的当前项目目录下,运行以下命令:
$ pod install --verbose --no-repo-update
因为是在你的项目中导入AFNetworking,这就是为什么这个命令需要你进入你的项目所在目录中运行。
这时候如果报错了:
[!] The dependency `MBProgressHUD (~> 0.8)` is not used in any concrete target.
The dependency `AFNetworking (~> 2.1.0)` is not used in any concrete target.
The dependency `JSONKit-NoWarning (~> 1.1)` is not used in any concrete target.
这时候不要慌:错误告诉我们是 target 的问题,解决方法:
发现了这个错误之后呢使用命令:open -e Podfile这个文件进行编辑编辑成我上面这种模样的然后commond+s保存关闭编辑再次使用(这种方式有时候会因为引号的格式不正确而出错,这时候最好是在XCode中编辑或者在终端中编辑)
pod install --verbose --no-repo-update
命令就可以了
按照上面的格式来就好,其中‘TTTTTTTT’是我的项目名称,这时候我们会发现我们想要的都有了: