Xcode使用第三方库-Cocoapods

      这里有许多大神的共享,我再添加我遇到的问题及解决方法。

    

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 updatesystem

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

如果出现如下的错排

[!]  /usr/bin/git clone 'https://github.com/CocoaPods/Specs.git' master --depth=1

xcrun: error: active developer path ("/Volumes/Xcode/Xcode.app/Contents/Developer") does not exist, use xcode-select to change


可以执行命令

xcode-select: error: invalid developer directory '/Applications/Xcode.app/Contents/Developer'

或者 sudo xcode-select -switch /Applications/Xcode6-Beta.app/Contents/Developer

成功了:

usertekiMacBook-Air:~ user$ sudo xcode-select -switch /Applications/Xcode6-Beta.app/Contents/Developer

usertekiMacBook-Air:~ user$ pod search AFNetworking

Setting up CocoaPods master repo

Setup completed (read-only access)


再执行
pod search AFNetworking
看到了正常的结果:

AFNetworking (2.3.1)

   A delightful iOS and OS X networking framework.

   pod 'AFNetworking', '~> 2.3.1'

   - 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)

若出现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,运行:

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

touch Podfile(创建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 出现有关问题的解决办法


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值