iOS开发笔记 - 使用CocoaPods管理第三方库

在iOS项目中使用第三方类库可以说是非常常见的事,但是要正确配置这些第三方库会非常的繁琐,还好我们有CocoaPods来做这件事情,就如同在Java的世界里有Maven和Gradle,当然Maven的作用不仅仅是第三依赖库管理。通过CocoaPods工具我们可以为项目添加被称为"Pods"的依赖库(这些类库必须是CocoaPods本身所支持的),并且可以轻松管理其版本。

CocoaPods意义体现在两个方面。第一,在引入第三方库时它可以自动为我们完成各种各样的配置,包括配置编译阶段、链接器选项、甚至是ARC环境下对某些使用MRC的类设置-fno-objc-arc等;第二,使用CocoaPods可以很方便地查找新的第三方库,这些第三方库是更规范的或是知名的第三方库,这样可以让我们找到真正好用的第三方库。

安装Ruby环境

查看Mac是否安装Ruby和Gem

在终端中输入命令:ruby --versiongem --version

输出如下类似提示符,则表示Ruby环境已安装

$ ruby --version
ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-darwin14]
$ gem --version
2.5.1

说明:Ruby是日本人松本行弘发明的编程语言,它对面向对象和函数式编程都提供了很好的支持,而且有很高的开发效率。Gem是一个用于对Ruby组件进行打包的打包系统,它提供了分发Ruby程序和库的标准格式,还提供一个管理程序包安装的工具,CocoaPods就是用Ruby编写的第三方依赖库管理工具,可以通过gem来安装。

安装CocoaPods

我们先将默认的gem源修改成淘宝的镜像,原因你懂的!

$ gem sources --remove https://rubygems.org/
$ gem sources -a https://ruby.taobao.org/

为了验证你的Ruby镜像已经修改为淘宝镜像(只能保留淘宝镜像),可以用以下命令查看,而且必须看到如下所示的输出。

$ gem sources -l
* CURRENT SOURCES *
https://ruby.taobao.org/

提示:如果出现多个源就需要将其他的源删除。

终端中执行安装CocoaPods

$ sudo gem install cocoapods

执行完成后,需要初始化CocoaPods的环境

$ pod setup

提示:以上两步可能会花费较多的时间,跟你的网络状况有很大关系。

使用CocoaPods

  1. 创建Xcode项目并在终端中切换到该项目路径
  2. 使用命令pod init在当前文件夹下生成一个Podfile文件
  3. 编辑该文件,在该文件中输入如下信息:
$ vim Podfile

�图1. 用Vim编写Podfile

  该文件中的命令格式为:pod '第三库名称', '版本号',第三库名称一定要正确,否则分分钟安装失败。版本号书写的规则如下所示:

  • >= 1.0 至少版本为1.0
  • ~> 1.0 兼容1.0版本的最新版
  • == 1.0或1.0都表示指定版本
  1. 安装工程依赖的第三方库
$ pod install

如果命令执行后出现pods installed字样表示安装成功。

  1. 关闭Xcode工程,在项目路径下打开.xcworkspace文件(工作空间文件),此时工作空间中除了你创建的项目外,还有一个名为Pods的项目,其中包含了你需要的第三方库,而且底层依赖库、编译标记、链接符号等都已经设置好了。


    图2. 用xcworkspace文件打开工作空间
  2. 如果要在你的项目中使用第三方库如AFNetworking,则只需要#import <AFNetworking.h>即可,如果要添加其他的第三方库,可以直接修改Podfile文件,然后再次执行$ pod install即可;如果修改了要使用的第三方库的版本,也可以执行$ pod update进行更新操作。

说明:可以在Xcode中安装CocoaPods插件,这样可以在Xcode中直接通过菜单完成各种操作而不用在终端中键入命令。

如果你愿意也可以使用Carthage来取代CocoaPods,Carthage是一个去中心化的依赖库管理工具,和CocoaPods不同它对原有的项目没有侵入性,你只需要在项目中添加由Carthage生成的Framework文件,然后在"Build Settings"中的"Framework Search Path"项加入$(SRCROOT)/Carthage/Build/iOS路径,Xcode便会自动搜索目录下的 Framework文件,完成对依赖库的安装,具体的做法可以参考互联网上的其他资料。

参考链接

  1. http://code4app.com/article/cocoapods-install-usage
  2. http://blog.csdn.net/wzzvictory/article/details/18737437
  3. http://blog.csdn.net/wzzvictory/article/details/19178709
  4. http://www.isaced.com/post-265.html

致谢

以上内容根据千锋教育成都校区林天祥老师提供的资料整理而成,在此表示感谢。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,045评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,114评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,120评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,902评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,828评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,132评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,590评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,258评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,408评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,335评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,385评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,068评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,660评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,747评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,967评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,406评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,970评论 2 341

推荐阅读更多精彩内容

  • 项目组件化、平台化是技术公司的共同目标,越来越多的技术公司推崇使用pod管理第三方库以及私有组件,一方面使项目架构...
    swu_luo阅读 21,312评论 0 39
  • 一、iOS和OSX中添加第三方依赖库1.1 CocoaPods介绍1.2 Carthage介绍1.3 CocoaP...
    小米锅巴阅读 2,197评论 0 8
  • 昨晚和两个好朋友吃晚饭,有日子没见了,每个人的情况都有不小的变化,一个辞职在家呆着不着急找工作,一个辞职在家呆不住...
    沈磊阅读 202评论 0 0
  • 有两只小狗,一只叫乐乐,一只叫花花,他们俩是好朋友。有一天,他们吵架了,原因是:两只小狗都觉得自己最大。于是乐乐说...
    senny1978阅读 220评论 0 2
  • 你在哪呢?回家次饭么?几点回来?一接电话,爷爷就一连串问我了好几个问题,我突然想起来昨天下午爷爷就给我商量...
    s耳根软小姐阅读 247评论 0 0