Xcode使用第三方库-Cocoapods

说起这个,作者简直要泪奔啊,从着手安装cocoapods到安装成功,开始是用第三方库简直就是一路爬过来,各种问题变着花样儿玩我,but,最后能解决,算是感谢网上各种大神的帖子和群友的帮助,下面开始介绍怎么安装吧:

1、升级Ruby环境

首先参考的是这个帖子:史上最详细的CocoaPods安装教程

终端输入:(应该知道终端是什么吧,实用工具里边,终端)

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
20141022164653840.jpg

这个时候表示Ruby升级完成。

2.安装cocoapods

参考帖子:史上最详细的CocoaPods安装教程CocoaPods安装和使用及问题:Setting up CocoaPods master repo

假如你在本地已经安装好Ruby环境,那么下载和安装CocoaPods将十分简单,只需要一行命令。

sudo gem install cocoa pods

但是,且慢。如果你在天朝,在终端中敲入这个命令之后,会发现半天没有任何反应。原因无他,因为那堵墙阻挡了cocoapods.org。

但是,是的,又但是(不过是个可喜的“但是”)。我们可以用淘宝的Ruby镜像来访问cocoapods。按照下面的顺序在终端中敲入依次敲入命令:

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

等有反应之后再敲入以下命令

$ gem sources -a https://ruby.taobao.org/

为了验证你的Ruby镜像是并且仅是taobao,可以用以下命令查看:

$ gem sources -l

只有在终端中出现下面文字才表明你上面的命令是成功的:


这时候如果你看了作者参考的博文,细心的你会发现,有一条命令中作者多加了一个s.没错 就是:

 gem sources -a https://ruby.taobao.org/

作者参考的博文可能比较老了,现在淘宝的镜像已经更换了,现在使用的是https,不是http,作者卡在这里好久,所以你按照作者的命令输入就对了

接着继续往下走,输入命令

sudo gem install cocoapods

这时候问题来了,作者参考的博文就这么过去了,但是我出现了

ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/xcodeproj

简直脑袋爆炸,找了良久,看到简书上一个好友的分享:OS X 10.11的“坑”,解决了,如下:
其实这个错误是与Mac系统的Rootless权限问题有关系,OS X 10.11之后的系统,用户使用sudo获取最高权限,实际上该权限并不能对文件执行read、write等操作,用户需要关闭系统的Rootless权限,才能通过sudo命令对文件进行最高权限操作,下面附上具体关闭Rootless权限的方法:

1、开机按住Command + R键,让电脑进入恢复模式

2、打开终端,在终端中键入:csrutil disable 并回车

3、重新启动电脑进入普通模式即可。

这时你在终端输入cocoapods的下载命令发现之前的错误已经和你say goodbye了。

如果你得问题依旧没有解决的话,OS X 10.11的“坑”里还有一些解决办法,可以参考,另外这里,也是一种方法,多尝试,总有方法可以解决。

cocoapods安装好了之后执行命令

pod install 

出现Setting up CocoaPods master repo,说明Cocoapods在将它的信息下载到 ~/.cocoapods里;cd 到该目录里,用du -sh *命令来查看文件大小,每隔几分钟查看一次,这个目录最终大小是100多M,就是完成了

没错。作者又出现问题了,可能是学校的网太垃圾,我就卡在了Setting up CocoaPods master repo,不会动 不会动,一个晚上了 ,于事无补,无奈之下,继续百度,然后就找了cocoapods时遇到pod setup失败的解决办法,帖子中又很多中方法,作者这里介绍我解决的方法:

  • 下载楼主提供的文件pod setup失败的解决方法(提取码:d3a6)解压之后
  • 问题来了,如果你按照解压包中的说明可以进行的话就跳过下个步骤的内容,如果你和作者一样苦逼,那就继续看吧
  • 我找不到repos文件夹!ctrl+space搜索不到,但机智如我,我看到了repo文件夹,将master解压放进repo文件夹(直接用ctrl+space,然后输入repo找到就行了),继续
  • 复制了master之后,终端执行命令
pod setup

完成,终于完成,

3.使用cocoapods

参考文章:CocoaPods安装和使用及问题:Setting up CocoaPods master repo

你可以按照参考文章中的步骤来,也可以按照作者的来,我看过好多的介绍都是用的参考文章中得库,但我用了SwiftHTTP库

场景1:利用CocoaPods,在项目中导入SwiftHTTP库

为了确定SwiftHTTP是否支持CocoaPods,可以用CocoaPods的搜索功能验证一下。在终端中输入:

$ pod search SwiftHTTP

过几秒钟之后,你会在终端中看到关于SwiftHTTP类库的一些信息。比如:

屏幕快照 2015-12-22 下午5.53.01.png

这说明,SwiftHTTP是支持CocoaPods,所以我们可以利用CocoaPods将SwiftHTTP导入你的项目中。

首先新建项目,SwiftHTTPDemo,目录结构是这样的,但是名字不是这个,看结构就好 :



下面是参考博文中对podfile的解释:

你看到这里也许会问,CocoaPods为什么能下载AFNetworking呢,而不是下载其他类库呢?这个问题的答案是,有个文件来控制CocoaPods该下载什么。这个文件就叫做“Podfile”(注意,一定得是这个文件名,而且没有后缀)。你创建一个Podfile文件,然后在里面添加你需要下载的类库,也就是告诉CocoaPods,“某某和某某和某某某,快到碗里来!”。每个项目只需要一个Podfile文件。

然后我们先创建这个PodFile。在终端中进入(cd命令)你项目所在目录(如果你不知道bash命令,这个对你有帮助:mac终端上的bash命令),然后在当前目录下,利用vim创建Podfile,运行:

vim Podfile

这个时候会进入vim模式,粘贴下面代码,

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!

pod 'SwiftHTTP', '~> 1.0.0'

这段代码的来源,是github上SwiftHTTP库的说明,那么这个库的github地址在哪里呢,刚才我们search时候出现的文字中就有,读者可以自己找找便是

粘贴了之后保存退出。vim环境下,保存退出命令是:

:wq

输入命令之前按esc切换到命令行

这时候,你会发现你的项目目录中,出现一个名字为Podfile的文件,而且文件内容就是你刚刚输入的内容。注意,Podfile文件应该和你的工程文件.xcodeproj在同一个目录下。

这时候,你就可以利用CocoPods下载swiftHTTP类库了。还是在终端中的当前项目目录下,运行以下命令:

$ pod install

因为是在你的项目中导入AFNetworking,这就是为什么这个命令需要你进入你的项目所在目录中运行。

运行上述命令之后,终端出现以下信息:


屏幕快照 2015-12-22 下午6.04.19.png

注意最后一句话,意思是:以后打开项目就用 CocoaPodsDemo.xcworkspace 打开,而不是之前的.xcodeproj文件。

你也许会郁闷,为什么会出现.xcodeproj文件呢。这正是你刚刚运行$ pod install命令产生的新文件。除了这个文件,你会发现还多了另外一个文件“Podfile.lock”和一个文件夹“Pods”。 点击 CocoaPodsDemo.xcworkspace 打开之后工程之后,项目Xcode目录结构如下图:

屏幕快照 2015-12-22 下午6.05.49.png

这时候,在viewcontrollor中就可以import SwifHTTP了,如果你和作者一样不幸,那么你就会出现红色叹号,这时候不要着急,如果你又和作者一样幸运,按组合键ctrl+b编译之后,就不会有问题了,

至此,cocoa pods的安装和使用终于结束,百般周折终于完成,

下面是作者在安装使用过程中百度到的有用的地址,如果你按照我的方法还是不幸,不放试试下面地址中得方法:

  1. mac终端上的bash命令
  2. cocoaPods时遇到pod setup失败的解决办法
  3. CocoaPods安装和使用及问题:Setting up CocoaPods master repo
  4. OS X 10.11的“坑”
  5. pod安装失败
  6. 史上最详细的CocoaPods安装教程
  7. 关于Cocoapods更新的问题!淘宝的域名不可用了?
  8. OS X 10.11 安装Cocoapods 出现有关问题的解决办法

不说了,作者买袋辣条冷静一下。

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

推荐阅读更多精彩内容

  • 项目组件化、平台化是技术公司的共同目标,越来越多的技术公司推崇使用pod管理第三方库以及私有组件,一方面使项目架构...
    swu_luo阅读 21,631评论 0 39
  • 什么是cocoapods CocoaPods是一个用来帮助我们管理第三方依赖库的工具。它可以解决库与库之间的依赖关...
    VV木公子阅读 7,062评论 0 7
  • CocoaPods 是什么? CocoaPods 是一个负责管理 iOS 项目中第三方开源库的工具。CocoaPo...
    朝洋阅读 25,665评论 3 51
  • 只因天空一抹蓝,一方草坪在风里静谧,在雨里微笑,在诗里悲凄,在梦里喧嚣…色彩斑斓是一种毒,渲染了身后,麻醉了眼前…...
    络琳阅读 107评论 0 0
  • 行脚禅,跟随王蒙师兄的一次山行 记不得什么时候,听过禅了.也许是小时候抓知了的时候被告知这个虫的另一个名字叫作蝉....
    思庄者阅读 797评论 0 0