在iOS工程中Cocoapods的使用

我们在开发iOS程序的时候,往往都会根据需要导入很多的第三方框架,但是不同的框架完成的功能不同,所以导入的方式也不同,并不是把它直接拖进工程中就完事了,我们需要配置各种环境,链接各种库文件等等。有的时候我们并不能一个不漏的完成导入,而一旦出了问题,尤其是那些需要框架比较多的工程(比如早期的百度地图框架),将很难解决,而且,如果遇到了第三方库升级,更新了方法那么我们还需要把之前的旧版本删掉,再重复一下前面的工作,这将是非常的繁琐,极大地影响了开发的效率。这个时候我们就需要用到cocoapods来管理我们的第三方了,在我们有了CocoaPods这个工具之后,只需要将用到的第三方开源库放到一个名为Podfile的文件中,然后在命令行执行$ pod install命令。CocoaPods就会自动将这些第三方开源库的源码下载下来,并且为我的工程设置好相应的系统依赖和编译参数,不管是导入还是更新或者移除,都是一句命令就搞定的。网上也有类似的教程,但是有些很旧,有些写的不详细,导致新手在使用的时候整的一头雾水,我就来说下。
第一步 : 首先安装cocoapods要在ruby环境下进行,虽然我们的mac系统都是自带了ruby,但是为了保险起见我们还是要先更新一下ruby环境:在这里我们直接使用 sudo gem update --system 命令来更新,网上有的说使用 gem update --system 前面少了sudo,其实加sudo的目的就是用管理员的权限去执行这句更新命令,不加的话容易出现这个错误

意思是你没有权限去执行这个命令,等出现了RubyGems system software updated 这句话的时候就证明升级成功了。
第二步:安装cocoapods时候我们要访问cocoapods.org这个网站,不用想这个网站已经被墙了,所以我们可以用淘宝的ruby的镜像来访问该网站。首先我们输入 gem sources -l 来看一下我们现在有什么,我目前里面只有一个
也就是我们需要的,不过可能有些人的里面不止一个,会有其他的东西,这时候我们先用gem sources --remove XXXXXXXXXXXXXXX 来把其他的source删除掉,只保留这一个,如果没有的话就手动添加用这个命令 gem sources -a https://ruby.taobao.org/ 来将我们需要的源添加进去,最后再用那个查看命令 最后只有确保像我里面一样只有那一个就好,要注意的是 https 网上好多教程写的是 http,那个已经作废了

第三步:安装是cocoapods 使用 sudo gem install cocoapods 命令来安装cocoapods,你输入完这个命令回车后会提示你输入密码,这时候是没有光标提示的,也不会移动,凭感觉输入对之后就回车吧,然后就是等,时间长短是根据你的网速来的。安装完成后终端就进入待命阶段了。
第四步:使用search命令来搜索类库,这个是支持模糊搜索的,记不清全名,打一部分名也行,不过那样的就要从搜出来的东西里找你想要的类库了。比如我想找afnetworking 我就输入 pod search afn 回车后就会输出所有以afn开头的类库名字,像这样
搜出很多,其中第三就是我们想要的,afnetworking,用红圈圈起来是一会编辑podfile时候需要用的,可以先把他复制下来省的手打,后面的小数代表的是类库的版本,一般是最新的显示在这里,下面的version是历史版本,如果有需要可以直接导入它的历史版本,就是把后面的版本号替换下就好。

值得注意的是如果你不是第一次安装cocoapods, 那么之前的缓存会对你有影响search先清理下缓存 使用这个命之后就可以了 rm ~/Library/Caches/CocoaPods/search_index.json
    第五步:进入你的工程目录,这里建议直接右键你工程中.xcodeproj文件选择在终端中打开,然后 在终端中输入命令cd ..  就会跳到.xcodeproj所在的目录,也就是我们需要的目录,很多新手在这个地方容易出错。然后输入命令 vim Podfile熟悉Linux的用户都知道这是创建一个Podfile文件并打开编辑,按 “i” 进入编辑模式,将第五部粘贴的东西拷贝进来,然后依次操作esc键  ->  ":"  ->  输入wq![](http://upload-images.jianshu.io/upload_images/1792635-822c1108f21a2375.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)然后输入命令来安装 pod update --verbose --no-repo-update 等待过后就安装完成啦,其实使用pod install也可以,只是后者需要更新一个仓库,这是相当耗时的,我们可以使用前者来避免更新仓库就好,很快就结束了。![](http://upload-images.jianshu.io/upload_images/1792635-2a8fc00a951f0629.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)安装成功!以后打卡工程就直接打开这个文件就好啦![](http://upload-images.jianshu.io/upload_images/1792635-87a77c0695287afa.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)其中podfile文件中显示了我们这个工程中所以集成的第三方,![](http://upload-images.jianshu.io/upload_images/1792635-80456623769e4e2e.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)想修改版本的话就把后面的版本号改成你所需要的版本号就好,想删除的话就把这行删掉,想添加的话就用第五部的搜索命令去搜索然后同样把搜索结果中以pod开头的那句话复制进来就好。注意以上所有的增删改操作完成之后需要在去终端中相应的目录下使用 pod install --verbose --no-repo-update 命令来更新,这样才会真正的生效。
    第六步:关于cocoapods的更新。有的时候在pod install的时候会出现

[!] The 'master' repo requires CocoaPods 0.32.1 - 这样的错误,是由于你cocoapods版本过低的原因,这时候需要进行更新,跟新的过程其实就是把以上所有的从新走一遍就相当于安装遍就好了。 ********* 值得注意1: ********* 经常遇到的错误比如下面这个

通常出现在OS X 10.11系统上 这是由于从这个系统开始苹果开始使用无根安装,这时你再用这个方法就会报这个错,这时只需
这个命令就可以成功升级啦
                                       *********      值得注意2:  ********* 
有的时候大家在pod search的时候搜不到,但是明明有这个类库别人都可以都到课时就是自己搜不到,其实原因是这样的:pod search只会搜索你本地缓存的框架,如果你想搜索到最新的第三方框架或者某个框架的最新版本,必须先使用pod repo update(推荐)或者pod setup将远程仓库的框架信息更新到本地。其实,从pod search的响应速度飞快,也可以猜出它并没有连接服务器,仅仅是搜索了本地的框架信息[呵呵]
此外,如果你的框架更新比较慢,可以尝试执行下面2条指令更换镜像服务器

1:pod repo remove master
2:pod repo add master http://git.oschina.net/akuandev/Specs.git
更换镜像完毕后,以后执行pod repo update的速度就会快很多。在说明一点上面两条指令如果第二条无法执行提示403错误像这样

那么在执行完第一条之后直接pod search 命令就好 这样他会自动找合适的配置了,因为第二条那个网址可能会变。
关于使用cocoapods在自己的项目中集成第三方就这些内容。有什么不懂的欢迎来找我交流,本人才疏学浅,如果那里写的不对请及时批评指正,免得误导新人。 新浪微博小耗子上桌子也是我,大家也可以去看下微博多多关注 谢谢

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

推荐阅读更多精彩内容