iOS开发 - CocoaPods安装和使用教程

一、CocoaPods简介

1.什么是CocoaPods?

CocoaPods是iOS的包管理工具。

2.为什么要使用CocoaPods?

在开发iOS项目时,经常会使用第三方开源库,手动引入流程复杂,并且库之间还存在依赖关系,更增加了手动管理的难度。开源库如果升级了,你也想用最新版本,还需要重新手动导入,这大大增加了工作量。但用了CocoaPods后,安装和升级都只是一句命令的事情,让你可以专于业务本身。

二、CocoaPods安装

1. 安装Ruby

CocoaPods基于Ruby语言开发而成,因此安装CocoaPods前需要安装Ruby环境。幸运的是Mac系统默认自带Ruby环境,如果没有请自行查找安装。检测是否安装Ruby:

$ gem -v
2.0.14

安装则会提示当前Ruby版本。gem介绍:gem是一个管理Ruby库和程序的标准包,它通过Ruby Gem(如 http://rubygems.org/ )源来查找、安装、升级和卸载软件包,非常的便捷。

2. 更换gem源

因为国内网络的问题导致gem源间歇性中断,原因你懂的。因此我们需要更换gem源,使用淘宝的gem源https://ruby.taobao.org/

第一步:移动默认的源

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

第二步:指定淘宝的源

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

第三步:查看指定的源是不是淘宝源

$ gem sources -l
*** CURRENT SOURCES ***

https://ruby.taobao.org/

如果是https://ruby.taobao.org/,则更换成功。

3. 安装CocoaPods

终于开始安装CocoaPods,说实话本人都快忘记是在写CocoaPods的教程了,囧!确认改成淘宝源后执行以下命令进行安装:

sudo gem install cocoapods

稍等片刻即可安装完成,输入以下命令检测是否安装成功:

$ pod --version
0.39.0

成功则会提示CocoaPods版本,到此安装已告一段落。

三、CocoaPods使用实例

首先新建一个iOS工程MyDemo,在该工程中演示CocoaPods的使用。

1. 创建Podfile

进入工程的根目录,创建Podfile文件,创建完毕的目录如下图:


创建Podfile文件后的工程目录结构

2. 编辑Podfile

根据需要,我们可以在Podfile文件中写入我们需要的第三方库,这里以AFNetworking和MJRefresh为例,Podfile内容如下:

platform :ios, '7.0'
pod 'AFNetworking', '~> 3.0'
pod 'MJRefresh','~> 3.1'

这段代码的意思是,当前类库支持的iOS最低版本是iOS 7.0, 要下载的两个类库的版本分别为 3.0、3.1。

3. pod install 导入第三方库

这时候,你就可以利用CocoPods下载AFNetworking和MJRefresh类库了。在终端中进入工程根目录,运行以下命令:

$ cd /Users/myl/Desktop/IOS/MyDemo
$ pod install
Analyzing dependencies
Downloading dependencies
Installing AFNetworking (3.0.4)
Installing MJRefresh (3.1.0)
Generating Pods project
Integrating client project

[!] Please close any current Xcode sessions and use `MyDemo.xcworkspace` for this project from now on.
Sending stats

注意最后一句话,意思是:以后打开工程就用 MyDemo.xcworkspace 打开,而不是之前的.xcodeproj文件。你也许会郁闷,为什么会出现.xcworkspace文件呢。这正是你刚刚运行pod install命令产生的新文件。除了这个文件,你会发现还多了另外一个文件“Podfile.lock”和一个文件夹“Pods”。点击 MyDemo.xcworkspace 打开工程之后,你会发现工程目录多了一些,你会惊喜地发现,AFNetwoking和MJRefresh已经成功导入项目了!

新的目录结构:


CocoaPods_03.png

4. pod update 更新第三方库

如果需要引入或删除类库,只需要修改Profile文件后执行以下命令即可:

pod update

5. 工程中使用类库

如果是OC项目,只需在使用的文件中导入该类库的头文件即可:

#import "AFNetworking.h"
#import "MJRefresh.h"

如果是Swift项目,使用OC的类库,需要新建桥接头文件(MyDemo-Bridging-Header.h),在头文件中导入要使用的类库:

#import <AFNetworking/AFNetworking.h>
#import <MJRefresh/MJRefresh.h>

四、常见问题

1. install,update速度慢

出现原因:你本地的repo库太长时间没有更新了
解决办法:pod repo update

原因在于当执行以上两个命令的时候会升级CocoaPods的specs仓库,如果不想在install,update的时候升级specs库,可以使用参数忽略掉
pod install --no-repo-update
pod update --no-repo-update

2. 导入Swift类库

导入Swift语言编写的类库时需要加use_frameworks!,下面以导入Alamofire为例:

platform :ios, '8.0'
use_frameworks!
pod 'Alamofire', '~> 1.3'

3. 官方文档

对于Podfile参数细节,可以查阅官网,再此不做过多介绍。
http://guides.cocoapods.org/

本文首发于马燕龙个人博客,欢迎分享,转载请标明出处。
马燕龙个人博客:http://www.mayanlong.com
马燕龙个人微博:http://weibo.com/imayanlong
马燕龙Github主页:https://github.com/yanlongma

推荐阅读更多精彩内容

  • CocoaPods 是什么? CocoaPods 是一个负责管理 iOS 项目中第三方开源库的工具。CocoaPo...
    朝洋阅读 1,871评论 3 24
  • 走远欣赏你 - 博客园CocoaPods简介 CocoaPods是一个管理第三方依赖库的工具。它可以解决库与库之间...
    橙娃阅读 1,572评论 0 2
  • 沉浮于这凡尘间 一颗零落的心 只愿觅一处归所 以为是你 希望是你 却不知 在这心心念念间 已荡起万千愁绪
    木漠然阅读 21评论 0 2
  • 今夜细雨茫茫今夜任由思念万千穿越夜色苍苍水云深处通向天堂花园门口依偎在你的身旁 往事一半随风飞舞一半雨中荡漾唇齿间...
    随意诗社阅读 57评论 2 6
  • 迎着朝阳我们又开始了社会实践第五天的活动,经历了前四天丰 富而有趣的活动,大家的默契与配合度都得到了很大的提升。
    emmmmmm哦阅读 5评论 0 0