CocoaPods的安装与简单使用

CocoaPods安装及使用

CocoaPods是ios开发平台一个非常流行的第三方库管理工具。在开发过程中,根据项目复杂程度,通常我们会需要外链很多的第三方库。而添加这些第三方库的过程有时候会变成一场灾难。因此使用CocoaPods来代替我们管理这些库,将可以大幅缩短我们的开发时间。

在使用CocoaPods的时候我们并不需要关注它的原理,简单来讲它相当于将github上的第三方库checkout到你的项目工程目录中,再直接将这些库的链接添加到你的工程中。并且之后你也可以通过简单的命令对这些库进行更新。

以下就来了解一下CocoaPods的安装过程以及使用方法:

1.环境配置

笔者使用的开发环境是Mac OS X 10.11,XCode 7.3。CocoaPods的安装和使用需要有Ruby环境(Mac系统默认安装了Ruby环境,如果系统没有Ruby环境的可以去百度,有很多相关的文档)。不确定自己系统中是否有Ruby的,可以在终端中输入命令行:ruby -v查看当前ruby版本。

$ruby -v

ruby2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]

如果确认系统中已经有Ruby环境的,就可以继续下面的安装步骤了。

1.安装

CocoaPods的安装是非常简单的,但是前提是你的网速够快并且能绕过GFW(这就是为什么程序员必须要有vpn)。

确保网速够快(能绕过GFW)的,可以直接执行下面命令:

$sudo gem install cocoapods

如果执行了这句命令以后,终端很长时间都没有反应,那么就可以确定你没有绕过GFW了。这样的话你就需要按照以下步骤进行安装了:

首先,检查你的ruby源:

$gem sources -l

默认情况下,终端应该返回如下信息:

*** CURRENT SOURCES ***https://rubygems.org/

当然这个源在墙内是访问不到的。因此我们需要寻找一个可以在国内访问到的镜像。目前笔者找到的是http://rubygems-china.oss.aliyuncs.com这个阿里云的镜像,当然随着时间的推移,未来这个镜像也有可能无法访问了,到时候就只能重新寻找了。

确认镜像可用后,现在就要开始修改ruby源了。首先执行以下命令删除原来的ruby源:

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

执行命令后可在终端看见以下信息:

https://rubygems.org/ removedfromsources

然后下一步添加你找到的可用的镜像源:

$gem sources -a http://rubygems-china.oss.aliyuncs.com

此时如果你再执行gem sources -l命令,就能看到当前镜像源里只有阿里云这一个了。此时你就可以重新执行这一段开头的那句命令了:

$sudo gem install cocoapods

如果一切正常,你应该能看到一段安装进度,以及最后有一条信息:

3 gems installed

确认看见这条信息,就说明你的安装已经成功了,接下去就可以开始准备在你的项目中使用CocoaPods了。

2.使用

CocoaPods的使用我们以一个ios上非常通用的AFNetworking为例。首先,你需要检查你要添加的第三方库是否支持CocoaPods。在终端中执行以下命令:

$pod search AFNetworking

执行以后你应该能看到类似如下的一些关于AFNetworking库的信息:

-> AFNetworking (3.1.0)

A delightful iOSandOS X networking framework.

pod'AFNetworking','~> 3.1.0'- Homepage: https://github.com/AFNetworking/AFNetworking- Source:  https://github.com/AFNetworking/AFNetworking.git- Versions: 3.1.0, 3.0.4, 3.0.3, 3.0.2, 3.0.1, 3.0.0, 3.0.0-beta.3,3.0.0-beta.2, 3.0.0-beta.1, 2.6.3, 2.6.2, 2.6.1, 2.6.0, 2.5.4, 2.5.3, 2.5.2,2.5.1, 2.5.0, 2.4.1, 2.4.0, 2.3.1, 2.3.0, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0,2.1.0, 2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1, 1.3.4,1.3.3, 1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0, 1.0RC3, 1.0RC2,1.0RC1, 0.10.1, 0.10.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1[master repo]-Subspecs:- AFNetworking/Serialization (3.1.0)- AFNetworking/Security (3.1.0)- AFNetworking/Reachability (3.1.0)- AFNetworking/NSURLSession (3.1.0)- AFNetworking/UIKit (3.1.0)

确认AFNetworking库支持CocoaPods后,接下去我们就可以开始做添加操作了。

首先在XCode中新建一个project,笔者在这里命名为CocoaPodsTest。然后,在终端中cd到你的project所在的目录:

$cd /CocoaPodsTest

然后,执行命令:

$vim Podfile

添加一个Podfile文件。然后按i进入插入模式,进行编辑,在文件中输入以下内容:

platform :ios,'8.1'pod'AFNetworking','~> 2.0'

输入完成后按ESC退出编辑模式,最后输入:wq保存并退出文件。此时可以发现在项目目录下多了一个Podfile的文件,请注意这个文件必须与.xcodeproj在同一目录下。

(眼尖的朋友可能已经发现了,笔者这里使用的AFNetworking是2.0版本,而search出来的最新版本是3.1.0。这是为了下面执行update方便而进行的设置,这里可以直接填3.1.0)

不要改变终端中的当前目录,执行以下命令:

$pod install

就可以在当前项目中添加CocoaPods支持。安装完成后可以看到如下信息:

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

Sending stats

Pod installation complete! There is 1 dependency from the Podfile and 1 totalpod installed.

该信息表示CocoaPods已成功添加到当前项目中。同时“1 dependency from the Podfile”的意思就是Podfile文件中的AFNetworking库也添加完毕。同时在项目目录下你能发现多了Pods目录以及一个.xcworkspace文件。上面[!]后面提示的信息表示你需要在XCode中关闭现在这个CocoaPodsTest.xcodeproj,并且以后使用CocoaPodsTest.xcworkspace文件打开工程。

这个时候你打开xcworkspace,应该可以看见Pods已经被添加到工程,并且在Pods组里面,也包含了AFNetworking库。

这样,我们就完成了CocoaPods从安装到添加到工程的整个流程。而对于已经使用了CocoaPods的工程,可以通过CocoaPods的update功能直接更新包含的第三方库。

3.更新

CocoaPods可以非常简单的使用update语句直接更新所有第三方库,以下仍然使用AFNetworking为例。

首先,我们可以看到前面笔者使用的AFNetworking库,是使用的2.0版本。然而pod search AFNetworking命令执行的时候,能看到AFNetworking目前最新的版本是3.1.0。接下去我们就来看要如何将目前的第三方库版本更新到最新的版本。

同样先cd到项目目录下,并且开始编辑Podfile文件:

$cd /CocoaPodsTest

$vim Podfile

将Podfile文件中AFNetworking这一行的2.0改成3.1.0:

platform :ios,'8.1'pod'AFNetworking','~> 3.1.0'

修改完成后,按ESC退出编辑模式,最后输入:wq保存并退出文件。

然后回到终端,执行以下命令就可以开始更新了:

$pod update

可以看到在返回的信息中有一行绿色的信息:

Installing AFNetworking 3.1.0 (was 2.6.3)

这就表示项目中的AFNetworking库已经更新到3.1.0版本了。

4.小结

CocoaPods的功能非常强大,更高级的使用需求可以访问CocoaPods的官网https://cocoapods.org/ 查找更多功能。另外在https://github.com/CocoaPods/CocoaPods/wiki 也可以获得更多信息。

本文参考了

http://cnbin.github.io/blog/2015/05/25/cocoapods-an-zhuang-he-shi-yong/

http://code4app.com/article/cocoapods-install-usage

两位分享的内容,在这里致以诚挚的谢意。

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

推荐阅读更多精彩内容

  • Ruby 安装 要安装cocospods 首先需要安装ruby,可以先安装xcode,再安装macport ,最后...
    山天大畜阅读 1,849评论 0 1
  • CocoaPods 是什么? CocoaPods 是一个负责管理 iOS 项目中第三方开源库的工具。CocoaPo...
    朝洋阅读 25,666评论 3 51
  • Apple 内购流程:1、向苹果服务器,发送请求,获取可购买商品信息。2、SKProductsRequest 协议...
    大老虎_Robin阅读 1,817评论 1 5
  • 今天宝贝用他在幼儿园学到的蒙氏方法教我数数。还手把手教我写呢,体验了一把左手教左手的写字感受。明显我的起笔落笔顺序...
    张欣_2019阅读 194评论 0 0
  • 最可怜的莫过于对他好的那部分人,简直是心累到无以复加,用尽了办法却只能看着他继续重复他的无休止的堕落过程。 他也知...
    大王叫我来排版阅读 385评论 0 0