CocoaPods安装简介

一、CocoaPods简介

        在iOS开发过程中我们时常会用到一些大神在Github上边开源的三方库,如果说只用一个两个三方库的话还好说,手动将三方库拖进工程里边配置好就可使用了,但是使用的三方库多了怎么办?更何况有些三方库用手动操作的话光配置这一块就要花费好多时间。对于我们程序猿来讲时间可是最宝贵的。 所以呢,这时候如果你使用CocoaPods的话会给你剩好多时间的。

         那么什么是CocoaPods呢?CocoaPods就是一个用来帮助我们管理第三方依赖库的工具。它可以解决库与库之间的依赖关系,下载库的源代码,同时通过创建一个Xcode的workspace来将这些第三方库和我们的工程连接起来,供我们开发使用。

二、为什么需要CocoaPods?

    举个例子来说明一下CocoaPods的优点:

        虽然我现在是一个小白,但是只要努力终究会有成为大牛的那一天的嘛!嘿嘿.....所以我现在就假设自己某一天成了一位大牛啦!并且呢写了一个三方开源框架名字叫XiaoBaiFramework,接着呢又有一个心思缜密大白发现了这个框架使用之后他感觉,哎呦这个框架不错哦,可是有些地方大白觉着还不太完美,所以大白呢就以XiaoBaiFramework这个框架为基础又开发了一个名字叫DaBaiFramework的框架。

          后来小黑又发现了大白的DaBaiFramework这个框架感觉不错所以脑洞大开就有以DaBaiFramework这个框架为基础开发了一个名为XiaoHeiFramework的框架。于是乎呢,你有一天发现了小黑的XiaoHeiFramework这个框架,你感觉这个框架简直就是完美!不行,我要往我的工程里边使用它。于是你把小黑的XiaoHeiFramework导入工程后,编译了一下发现报错了,原因是:"XiaoHeiFramework" not found,于是你就看小黑框架的使用说明发现要使用这个框架你必须导入大白的DaBaiFramework,然后你按照提示导入了大白的DaBaiFramework,一编译,啊!咋又错了呢?一看原因:"DaBaiFramework" not found,然后你在看小白的使用说明发现使用这个框架你必须导入小白的XiaoBaiFramework框架,所以最后你又按照提示导入了XiaoBaiFramework才平息了这场战争。

        如果出现这种情况怎么办呢?在没有CocoaPods的情况下你只能按照上边的例子一步步去解决问题,但是如果使用CocoaPods的话你只需要将你要使用的XiaoHeiFramework这个框架导入即可,剩下所需的框架cocoaPods会帮你摆平。

三、CocoaPods的安装

         我相信看了上边的一大堆解释之后,你应该多少了解一些cocoaPods了吧!那么下边就赶紧进入主题吧!

安装前奏:

        CocoaPods是一个软件或者说一个工具,它是以一个可执行文件存在你的Mac电脑上边的,不过Mac是默认不安装CocoaPods的,所以你想让你的Mac拥有这个可执行文件,就必须安装。CocoaPods是用ruby写的程序被分成了若干个gem包,安装CocoaPods一般要通过Mac自带的ruby环境安装,也就是gem。但是gem被我大天朝给用墙给堵住了所以我们就需要改造一下gem,让它拥有一个翻墙的能力。其实让gem拥有一个翻墙的能力很简单的,一个VPN就能搞定,但是并不是所有人都有VPN的啊。所以这个时候淘宝gem就做了一个镜像,淘宝每过几分钟,通过他的方法就讲gem的另一端数据完全拷贝到淘宝的服务器上边了,这样淘宝就模拟了一个镜像,而这个镜像中就有我们需要的CocoaPods的可执行程序。

安装进行曲:

gem ruby  配置

打开终端输入 gem source -l (注释 :此处是字母L的小写)后回车

然后终端会输出:

说明gem 现在使用的是自己的镜像

继续在终端输入下图的命令然后回车:

remove原来的镜像

继续在终端输入下图的命令回车:

添加淘宝镜像

最后再次在终端输入gem source -l (注释 :此处是字母L的小写)后回车查看镜像是否替换成功。

注释:如果gem太老,可以尝试如下命令升级gem

升级gem

升级成功后会出现提示:

升级成功提示

gem ruby 配置完成后,它就拥有了一个伪翻墙的能力了。

在具备翻墙能力并且翻墙成功后,就可以通过淘宝的镜像来安装CocoaPods了。

在终端输入:

安装CocoaPods命令

注释:如果输入上边的命令出现问题的话可以试试:

紧接着会提示PassWord:此时你只需要输入你的Mac电脑的开机密码(密码输入的时候和输入结束后不会显示你的输入结果的,所以请细心点啦!)然后回车,就开始进行安装了,可能安装过程比较慢,耐心等待一下吧!截止到这里CocoaPods的安装工作就完成了。

四、CocoaPods的使用

        要想使用CocoaPods,需要将地三方库的索引信息下载到本地,否则CocoaPods没有办法完成地三方库信息的搜索和下载。安装CocoaPods成功之后可以选择如下方法中的一种方法进行初始化工作。

方案一:直接初始化

在终端输入命令行:pod   setup ,然后回车

在执行该命令的时候回终端会输出"Setting  up  CocoaPods  master  repo"的提示,然后可能得需要等待很长时间,因为此时CocoaPods再将它的信息下载到~/.cocoaPods 目录下。

也可以在终端中输入如下命令进行查看当前下载进度:

先输入cd  ~/.cocoapods  回车

在输入 du  -sh *

方案二

以上工作完成后就可以顺利使用CocoaPods了。下面就简单说下使用吧!

新建pod file的几种方式:

方式一:安装一个CocoaPods快速管理插件可以快速创建一个podfile文件(如下图),Product->CocoaPods->Create/Edit Podfile.

步骤一
步骤二
步骤三
步骤四
步骤五
步骤六

方式二:在终端中用命令行直接创建

终端命令行创建

方式三:新建Xcode工程后关闭工程,打开终端输入cd   工程根路径(可以在敲完空格后,选中工程的根文件夹拖入到终端中,即生成工程的根路径。如:)然后回车,继续在终端中输入vim podfile。此命令会自动在工程根路径下创建podfile文件,并使用vim编辑工具打开此文件,输入i即进入到vim对podfile文件的插入状态,输入格式如下:

 platform,'8.0'

pod ‘SDWebImage’,’~>3.6’

退出vim 操作,先按ESC在敲wq保存退出。podfile创建工作完成。

以上任选一种方式将podfile创建好之后就开始解析podfile文件,为xcode项目安装指定的地三方库。用终端打开工程后输入pod install完成三方库的下载。下载完成就可以使用三方库了。

五、安装可能会遇到的问题

1>、可能有时候安装的时候会在pod setup这一步失败,这里也有个解决方案,大家可以参考一下。(参考链接地址:http://www.cocoachina.com/bbs/read.php?tid-193398.html)


这个是原作者的一个截图参考地址已经在上边注明

这里只进行一个补充:

可能按照上边说的去操作你会找不见/.cocoaPods/repos这个文件夹,因为它是隐藏的所以你可以在终端用一下几行代码将其隐藏或者显示:

1.显示隐藏文件夹

defaults  write  com.apple.finder   AppleShowAllFiles   -bool true(输完第一行回车再输第二行)

killall  Finder

2.隐藏文件夹

defaults  write  com.apple.finder  AppleShowAllFiles  -bool  false (输完第一行回车再输第二行)

killall  Finder

还有就是上边提到的master文件夹最好是自己去找一个装有最新版本的cocoaPods的Mac本上拷贝一下,或者想办法找到和自己xcode上那个版本的cocoaPods相匹配的master文件夹最好。替换之后需要从安装cocoaPods失败的地方重新开始按照步骤操作一下。

2>、

404解决方法

3>、

错误示例

这个错误是因为你的Podfile文件没有创建到项目目录下,可以检测一下你的项目路径是否正确。

4>、

错误示例

解决方法:如果是访问github出错的话,需要配置一下你Mac上的DNS服务器。有时候不知道为何缘故,其它的DNS服务器解析github就是不太好用,所以只需将你的DNS服务器这改成8.8.8.8就可以了。

配置的具体步骤为:Mac上的偏好设置->网络->高级->DNS->点击+添加8.8.8.8

配置DNS   

5>、

错误示例

解决方法:

在终端中输入如下图两行代码:

解决方法

如果输出http.postbuffer=24288000,就ok了。

6>、在pod install 的时候,可以生成要导入的第三方库,但是其头文件却找不到,证明你的文件是有缺失的,这是因为Target设置没有完成。

错误示例

解决方法:

产生此错误的原因是项目Target中需要设置的一些配置,CocoaPods也做了默认的设置,如果两个设置结果不一致,就会造成问题。

如果想要使用CocoaPods中的设置,就需要分别在你的项目中定义PODS_ROOT 和 other Linker Flags的地方,把他们的值用$(inherited)替换掉。进入终端,执行pod  update,然后错误就没有了。

还有一种操作比较简单但是比较粗暴的方法:

点击项目文件project.xcodeproj,右键显示包内容,用文本编辑器打开project.xcodeproj,删除OTHER_LDFLAGS的地方,保存,执行pod    update ,错误没了。

如果在编辑podfile时候有警告的话可以试试往podfile里边加下面一句代码即可消除。

消除警告

六、cocoaPods的卸载


步骤一
步骤二


步骤三


步骤四


更多问题可以参考链接:http://www.jianshu.com/p/9fd6d9ddf4ca

七、补充说明

装好三方库后工程的打开方式和修改之后需要注意
不更新pod spec
参考链接

如果有错误的地方希望各位前辈们能够赐教,我好及时纠正。谢谢!

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

推荐阅读更多精彩内容