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
你可以按照参考文章中的步骤来,也可以按照作者的来,我看过好多的介绍都是用的参考文章中得库,但我用了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的安装和使用终于结束,百般周折终于完成,
下面是作者在安装使用过程中百度到的有用的地址,如果你按照我的方法还是不幸,不放试试下面地址中得方法:
不说了,作者买袋辣条冷静一下。