CocoaPods 的安装与使用

CocoaPods是一个三方库的管理工具,因为在开发过程中,会用到很多三方库。在没有CocoaPods的时候,我的步骤是这样的->到Github上搜索需要的库(AFNetworking,SDWebImage等)->下载->找到Demo官方Demo中的库->导入项目。当三方库更新后,我又要重复上面的步骤,特别麻烦。有了CocoaPods,已经纯粹进入到了带我飞的地步,所以,本文将讲解CocoaPods的安装与使用。

环境信息:

Max OS X 10.10.2

Xcode 6.2

正文:

涉及到输入命令的操作,均在终端中进行。

一、修改为Ruby淘宝路径

1. 查看Ruby环境

默认情况下,Mac OS X已经安装了Ruby环境,检查环境是否正确与Ruby版本可以使用以下命令:


ruby --version

2. 移除本来的Ruby路径


gem sources --remove https://rubygems.org/

当终端有响应以后在执行下面的步骤。

3. 添加淘宝镜像


gem sources -a https://ruby.taobao.org

4. 检查镜像是否正确


gem sources -l

二、安装CocoaPods

输入以下命令后,输入管理员密码,等待安装(输入密码回车后,可能要等一会儿才会有反应)


sudo gem install cocoapods

这一步完成后,可以看到大量的Log信息出现在终端中,最后一行是:


19 gems installed

这样CocoaPods就安装完成了。

三、使用CocoaPods

1. 创建一个名为test的工程

2. 以AFNetworking为例,导入这个库到工程中

首先需要确定AFNetworking是否支持CocoaPods。可以通过以下命令进行查看


pod search 'AFNetworking'

也可以到Github上查看AFNetworking的readme是否写有CocoaPods信息(如果支持,开发者都会标明)

Github上作者提醒使用Pod的方式
Github上作者提醒使用Pod的方式

3. 创建Podfile文件

进入到test目录下


cd /Users/rimi/Desktop/test 

先初始化CocoaPods环境(会自动创建Podfile文件)


pod init

然后编辑Podfile文件


vim Podfile

在文件中写入需要导入的库,以及三方库的版本(如果不写版本,会默认最新版)

在终端中输入i,表示插入内容到Podfile。

键入i,进入编辑状态
键入i,进入编辑状态
变成编辑状态
变成编辑状态

在target ‘test’ do与end之间写入需要导入的库。


pod 'AFNetworking'

输入需要导入库的信息
输入需要导入库的信息

输入完以后,按下Esc键退出编辑状态,然后输入以下命令,保存并退出。


:wq

按Esc退出编辑并保存退出
按Esc退出编辑并保存退出

4. 通过Pod导入库

在导入以前,最好先输入以下命令,重新检测下新的三方库。(在以后需要更新的时候,也最好先输入下面这个命令)


pod setup

输入以下命令,开始导入。


pod install

5. 打开工程并使用

安装完以后,可以看到,现在文件夹当中的结构已经变了。以后打开工程的时候,去打开test.xcworkspace,而不再用以前的test.xcodeproj。(注意:打开test.xcworkspace之前,要保证test.xcodeproj不是打开状态)

当前文件夹目录
当前文件夹目录

下面就是我们的现在看到的工程目录。test是写代码的地方,而Pod就是导入的库。

当前工程目录
当前工程目录

使用CocoaPods导入的库,引入头文件的时候,不再用


#import "AFNetworking"

而是用


#import <AFNetworking>

6. 更新工程中的pod

比如现在需要导入一个新的库SDWebImage,那么需要修改Podfile。

输入命令


vim Podfile

同样,向下面这样编辑Podfile,并保存退出。

更新Pod
更新Pod

输入下面命令,更新Pod。(如果很久没更新过了,先输入pod setup)


pod update

到这里,CocoaPods的基本使用就讲完了,关于如何将自己封装的库添加CocoaPods支持,请看文章:

http://www.brighttj.com/ios/ios-trunk-cocoapods.html

《CocoaPods 的安装与使用》有1个想法

发表评论

电子邮件地址不会被公开。