CocoaPods 安装和使用

本文源自本人的学习记录整理与理解,其中参考阅读了部分优秀的博客和书籍,尽量以通俗简单的语句转述。引用到的地方如有遗漏或未能一一列举原文出处还望见谅与指出,另文章内容如有不妥之处还望指教,万分感谢。

在 iOS 项目中使用第三方库可以说是很常见也必然会用到的,但是想要正确的配置是件很繁琐的事情,幸运的是在Github找到一个叫做CocoaPods的最常用最有名的类库管理工具可以帮助我们解决这繁琐的问题  .

什么是CocoaPods ? 

CocoaPods官方文档

CocoaPods是 iOS 最常用最有名的类库管理工具, 通过简单的命令行就能够完成繁琐的类库导入集成,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间,在我们有了CocoaPods这个工具之后,只需要将用到的第三方开源库放到一个名为Podfile的文件中.这样就方便我们集中管理项目中用到的类库.Cocoapods意义体现在两个方面。第一,在引入第三方库时它可以自动为我们完成各种各样的配置,包括配置编译阶段、连接器选项、甚至是ARC环境下的-fno-objc-arc配置等。第二,使用CocoaPods可以很方便地查找新的第三方库,这些类库是比较“标准的”,而不是网上随便找到的,这样可以让我们找到真正好用的类库!

了解 CocoaPods 

CocoaPods是用Ruby写的,并划分成了若干个Gem包。

CocoaPods在解析执行过程中最重要的几个包的路径分别是:CocoaPods/CocoaPods、CocoaPods/Core和CocoaPods/Xcodeproj。

CocoaPods / CocoaPod:这是面向用户的组件,每当执行一个pod命令时,这个组件将被激活。它包括了所有实用CocoaPods的功能,并且还能调用其他gem包来执行任务。

CocoaPods / Core:Core gem提供了与CocoaPods相关的文件(主要是podfile和podspecs)的处理。

Podfile:该文件用于配置项目所需要的第三方库,它可以被高度定制。本文中我们主要在这里做动作。

Podspec:该文件描述了一个库将怎样被添加进工程中。.podspec文件可以标识该第三方库所需要的源码文件、依赖库、编译选项,以及其他第三方库需要的配置。

Cocoapods安装步骤

1、升级Ruby环境 (如果你确定当前使用电脑的 ruby 版本是最新的就不需要再次升级)

终端输入:$gem update --system

此时会出现

ERROR: While executing gem ... (Gem::FilePermissionError)

You don‘t have write permissions for the

/Library/Ruby/Gems/2.0.0 directory.

zijingMacBook-Pro:~ shiyunlei$ sudo gem update —system

这个是因为你没有权限去更新Ruby

这个时候你可以在终端使用:$sudo gem update —system来进行升级

这个时候表示Ruby升级结束。

2、安装CocoaPods时我们要访问cocoapods.org,该网站可能被我们大天朝墙了,这样下载安装可能会是龟速,幸好我们可以用淘宝的Ruby镜像来访问该网站,方法如下:

1、gem sources --remove https://gems.ruby-china.org/

2、gem sources -a https://gems.ruby-china.com

3.  等待添加完成

$ gem sources -l 查看当前源地址。

添加成功尝试安装

sudo gem install fastlane --verbose

sudo gem install -n /usr/local/bin cocoapods --pre

升级 CocoaPod

如果报错可以参考:[CocoaPods的安装及常见错误及解决方案](https://www.jianshu.com/p/ee19d12a4769)

一切畅通无阻!

(以上网址可能以后会有改变,望读者在使用时查询下最新的地址,当然本人也会持续更新)

可以使用下面的命令(红色部分)查看是否更换镜像成功(如下图所示):

安装成功如下:

4 .查看 Cocoapods 版本:  pod --version

5. 安装Cocoapods 仓库, 换源安装 repo

>移除原仓库镜像

pod repo remove master

>使用清华源安装到本地 cd ~/.cocoapods/repos/master

git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git 

>最后需要setup一下更新本地仓库: pod setup

>查看仓库信息

pod repo

注意:  使用的时候 Podfile文件头部添加 换源后可以忽略

source https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git

6、使用search命令搜索类库名:

$pod search AFNetworking

如果CocoaPods支持,将会输出搜索到的所有类库版本和信息,以及在Podfile中配置的写法,终端返回信息如下:

-> AFNetworking (2.3.1)

A delightful iOS and OS X networking framework.

pod ‘AFNetworking‘, ‘~> 2.3.1’(这个语句是需要在编辑Podfile的时候输入的命令,即是如何安装下载相关类库的指令)

- Homepage:https://github.com/AFNetworking/AFNetworking

- Source:https://github.com/AFNetworking/AFNetworking.git

- Versions: 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]

- Sub specs: - AFNetworking/Serialization (2.3.1) -

AFNetworking/Security (2.3.1) - AFNetworking/Reachability

(2.3.1) -

AFNetworking/NSURLConnection (2.3.1) - AFNetworking/NSURLSession

(2.3.1)

- AFNetworking/UIKit (2.3.1)

-> AFNetworking+AutoRetry (0.0.5)

Auto Retries for AFNetworking requests

pod ‘AFNetworking+AutoRetry‘, ‘~> 0.0.5‘

- Homepage:https://github.com/shaioz/AFNetworking-AutoRetry

- Source:https://github.com/shaioz/AFNetworking-AutoRetry.git

- Versions: 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1 [master repo]

5、需要在工程中创建一个Podfile文件,

使用命令:

$cd /Users/shiyunlei/Desktop/CocoapodsSample(进入工程目录,cd后面的是工程的路径)

$ touch Podfile(创建Podfile文件)


然后使用vim编辑Podfile文件,使用命令:

$ vim Podfile

进入如下界面


然后紧接着按键盘上的“i”键,变成如下状态,这个时候可以对Podfile文件进行编辑:

1 target '项目名称' do

2

3 pod 'SVProgressHUD','~> 1.1.3'

4 pod 'AFNetworking','~> 2.6.0'

5 pod 'IQKeyboardManager'

6 pod 'Masonry', '~> 0.6'

7 pod 'FDFullscreenPopGesture', '~> 1.1'

8 pod 'SDCycleScrollView','~> 1.3'

9 pod 'SDWebImage', '~> 3.7.3'

10 pod 'MJRefresh'

11 pod 'HMSegmentedControl'

12

13 end

在编辑完成后按“esc”,

在按“:”,这个时候输入wq,点击回车,保存并退出。

这个时候打开Podfile文件就会看到里面添加了刚才在终端输入的一行语句,如下图

然后在终端输入命令安装相应的第三方类库

$pod install


因为这个过程需要下载相应的类库,所以时间和网速有关。

安装成功之后截图如下:


这个时候会看到之后打开工程都需要从类型为工程名.xcworkspace文件打开。


常用命令总结

//  创建默认的 Podfile

$ pod init

//  第一次使用安装框架

$ pod install

//  安装框架,不更新本地索引,速度快

$ pod install --no-repo-update

终端命令: control + C 取消上一次操作;

//  今后升级、添加、删除框架,或者框架不好用都使用这个命令

$ pod update

//  更新框架,不更新本地索引,速度快

$ pod update --no-repo-update

//  搜索框架

$ pod search XXX

//  帮助

$ pod --help

}

每次在更新CocoaPods的Specs时候都会特别慢,很容易失败,这里给差一个可以缩短是时间的方法


cocoapods 的 sepcs 文件是放在 :~/.cocoapods/repos/

cd 到该目录时直接执行:git clone https://github.com/CocoaPods/Specs.git master

这种方式会特别耗时,而且网速差的时候基本不可能下载成功 !

第一种解决办法:

可以终端执行:git clone --depth=1 https://github.com/CocoaPods/Specs.git master

其实无需全部 clone 下来,可以只 clone 最近一个 commit 的全部代码就可以;如此能够至少缩短一半的时间 !

第二种解决办法:github下载Specs

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

推荐阅读更多精彩内容