CocoaPods的安装和使用

一、CocoaPods简介

1、什么是CocoaPods

CocoaPods是专门为iOS工程提供的一个第三方类库的管理工具。其具体原理和 Mac OS自带的 Homebrew 有点类似,都是从 GitHub 下载索引,然后根据索引下载依赖的源代码。

2、为什么使用CocoaPods

在开发iOS应用时,经常使用到很多第三方开源类库,比如AFNetWorking、Masonry等等,手动加入不仅流程复杂,而且如果所用的开源库升级了,还需要手动删除、下载、再引入,大大增加了工作量。通CocoaPods,我们只需要简单的命令就可以实现第三方开源类库的安装升级,方便地管理每个第三方开源类库的版本。

二、cocoaPods的安装

1.安装Ruby

在安装CocoaPods之前,首先要要保证已经在本地安装好了Ruby环境,因为CocoaPods是基于Ruby语言的。

Mac系统默认自带有Ruby环境。检测是否安装Ruby:

$ gem -v

安装则会提示当前Ruby版本。
gem是一个管理Ruby库和程序的标准包,用于构建、上传、下载以及安装gems包。

2、安装CocoaPods

确认已经安装了Ruby的情况下,就可以安装CocoaPods了,安装的命令:

$ gem install cocoapods

稍等一会就可以安装完成,检查是否安装成功:

$ pod --version

成功提示版本号,则说明安装成功。

三、Cocoaods的使用

1、查找第三方类库

看其是否支持需要导入的第三方类库,比如查找MJExtension,终端输入:

$ pod search MJExtension

第一次搜索时需要创建索引,所以可能用的时间比较久,等一会就可以了。

2、创建Podfile文件:

(1)在进行Podfile创建之前,需要切换到当前工程所在的目录下:

$ cd 当前工程的路径

(2)在终端输入如下命令,创建Podfile文件,如果已经创建,则会直接打开已经存在的Podfile文件:

$ vim Podfile

需要导入的第三方类库都要在这里面写上。

3、编辑Pod file文件

(1)打开Podfile文件:
可以选择用系统自带文本编辑器打开进行直接编辑,也可以在Vim下进行编辑。
Vim是一款功能非常强大的文本编辑器

在Vim下进行编辑时,首先按‘i’(即insert)进入编辑模式,然后我们可以根据需要,在文件中写入需要导入的第三方类库。Podfile文件的格式大致如下:

其中:
1、platform:是指需要导入的第三方类库希望在哪个平台被编译,这里希望采用iOS8.0进行编译。
:如果在platform后面没有写东西的话,默认是在iOS4.3,OSX 10.6,tvOS 9.0以及watchOS 2.0的情况下编译的。很多库都是从6.0或者7.0才开始支持的,自然编译不通过。所以记得要注意这点,后面要跟上具体的platform的参数。

2、target:指定具体的配置是适配在哪个target,这里的target就是Xcode中的当前项目cocoapodsDemo。
:如果对于一些项目中你的不同target引用的框架不同的话,可以采用这个进行区分。

3、pod: 以 pod '类库名' 参数 的格式说明要导入的第三方类库。
:参数一般是版本号,可以是大于、等于和小于等,比如'>4.0', '>=4.0', '<4.0', '<=4.0',其中'~>4.0'就是指4.0版本;当然也可以是其它类型的参数,比如tag、branche、commit等。

(2)编辑完后,按esc退出编辑模式,并按shift+zz保存并退出。

4、安装第三方类库

编辑完Podfile文件之后,就可以利用CocoPods下载第三方类库了。在终端中运行以下命令:

$ pod install

安装成功之后,你会发现出现了一个.xcworkspace文件,这正是你刚刚运行pod install命令产生的新文件。除了这个文件,还多了另外一个文件“Podfile.lock”和一个文件夹“Pods”。

:之前我们一直是双击TcocoapodsDemo.xcodeproj打开项目,以后我们就要双击cocoapodsDemo.xcworkspace打开了.

5、使用第三方类库

在工程中引入其头文件,如MJExtension类库,可以#import <MJExtension.h>或者#import<MJExtension/MJExtension.h>,就可以在项目里使用MJExtension了。

四、增加新的第三方类库

如果使用过程中我还想添加其他的第三方怎么办呢?只要在Podfile里面接着添加,然后终端再执行pod install就可以了。

五、更新第三方类库

第三方类库们都有人在维护升级,我们需要隔断时间更新下我们工程中第三方库的版本。此时,只需要终端输入命令pod update就可以了。

六、删除第三方类库

当我们需要去掉某个第三方库时,只需要在Podfile删除该引入该库的语句,然后执行pod update或者pod install就可以了。

七、常见问题

(1)在输入#import "MJExtension.h"的时候出现提示
解决这个问题的办法是在工程的Build Settings搜索Search,然后在User header search paths中添加$(SRCROOT)并选择recursive。如下图:

(2)pod install或者pod update慢的问题
原因在于本地的repo库太长时间没有更新了,当执行以上两个命令的时候,会升级CocoaPods的specs仓库。如果不想在install和update的时候升级specs库,可以使用参数忽略掉,加参数的命令如下:

$ pod install --no-repo-update
$ pod update --no-repo-update

(3)CocoaPods更新不了时
CocoaPods需要实时更新,但是,自己更新不了时,需要ruby来更新,
当控制台命令不能更新ruby时,需要用系统的人homebrew来安装更新ruby,命令为:

brew install ruby

Ruby更新成功,CocoaPods也更新成功。

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

推荐阅读更多精彩内容

  • 一.CocoaPods是什么? CocoaPods是一个用Ruby写的、负责管理iOS项目中第三方开源库的工具,C...
    王小祺阅读 699评论 1 0
  • 看一遍就会的CocoaPods的安装和使用教程 什么是CocoaPods? CocoaPods是专门为iOS工程提...
    Marray阅读 1,467评论 1 1
  • 一、CocoaPods是什么? 当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNe...
    John_LS阅读 1,424评论 0 2
  • 一、什么是CocoaPods 在iOS应用开发过程中,有很多地方需要借助第三方代码,来提高我们的开发效率。但是,一...
    MorpLCP阅读 3,693评论 1 3
  • 王宝强离婚案现在是男女老少尽人皆知,本来不想来凑热闹,但是忍不住看了视频推送的关于王宝强的一期综艺节目《熟悉的味道...
    门前的美好阅读 277评论 0 2