CocoaPods安装和使用和遇到的坑



CocoaPods是什么?

当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库,“子子孙孙无穷尽也”,这也许是比较特殊的情况。总之小编的意思就是,手动一个个去下载所需类库十分麻烦。另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载新版本,重新加入到项目中,十分麻烦。如果能有什么工具能解决这些恼人的问题,那将“善莫大焉”。所以,你需要 CocoaPods。

CocoaPods应该是iOS最常用最有名的类库管理工具了,上述两个烦人的问题,通过cocoaPods,只需要一行命令就可以完全解决,当然前提是你必须正确设置它。重要的是,绝大部分有名的开源类库,都支持CocoaPods。所以,作为iOS程序员的我们,掌握CocoaPods的使用是必不可少的基本技能了。

如何下载和安装CocoaPods?

在安装CocoaPods之前,首先要在本地安装好Ruby环境。至于如何在Mac中安装好Ruby环境,下面我们就介绍一下怎么安装 Ruby 环境 

以下代码区域,带有 $ 打头的表示需要在控制台(终端)下面执行(不包括 $ 符号)

步骤0 - 安装系统需要的包

 

  # For Mac 
  # 先安装 [Xcode](http://developer.apple.com/xcode/) 开发工具,它将帮你安装好 Unix 环境需要的开发包

步骤1 - 安装 RVM

 RVM 是干什么的这里就不解释了,后面你将会慢慢搞明白。

$ curl -L https://get.rvm.io | bash -s stable

期间可能会问你sudo管理员密码,以及自动通过homebrew安装依赖包,等待一段时间后就可以成功安装好 RVM。

然后,载入 RVM 环境(新开 Termal 就不用这么做了,会自动重新载入的)

$ source ~/.rvm/scripts/rvm
检查一下是否安装正确

 $ rvm -v//点击回车之后出现了版本 就是安装正确

步骤2 - 用 RVM 安装 Ruby 环境

  

列出已知的ruby版本

   $ rvm list known

 

可以选择现有的rvm版本来进行安装(下面以rvm 2.0.0版本的安装为例)

 

    $ rvm install 2.0.0

同样继续等待漫长的下载,编译过程,完成以后,Ruby, Ruby Gems 就安装好了。

另附:

查询已经安装的ruby

  $ rvm list

卸载一个已安装版本 

      $ rvm remove 1.9.2

步骤3 - 设置 Ruby 版本

 

RVM 装好以后,需要执行下面的命令将指定版本的 Ruby 设置为系统默认版本

    $ rvm 2.0.0 --default

同样,也可以用其他版本号,前提是你有用 rvm install 安装过那个版本

这个时候你可以测试是否正确

    $ ruby -v
    ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin13.0.0]

    $ gem -v     2.1.6
这样我们的就把Ruby成功安装了

由于在天朝有“墙”的存在,所以我们必须用淘宝的Ruby镜像来访问cocoapods。按照下面的顺序在终端中敲入依次敲入命令:

$ gem sources --remove https://rubygems.org/
//等有反应之后再敲入以下命令
$ gem sources -a http://ruby.taobao.org/

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

$ gem sources -l

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

*** CURRENT SOURCES ***

http://ruby.taobao.org/

这个时候就证明咱们的tao bao Ruby 镜像替换成功了

这时候,你再次在终端中运行:

$ sudo gem install cocoapods

如果执行sudo gem install cocoapods出现错误:


  
  
<button href="javascript:void(0);" _xhe_href="javascript:void(0);" class="copyCode btn btn-xs" data-clipboard-text="" error:="" while="" executing="" gem="" ...="" (errno::eperm)"="" data-toggle="tooltip" data-placement="bottom" title="" style="color: rgb(255, 255, 255); font-family: inherit; font-size: 12px; font-style: inherit; font-variant: inherit; line-height: 1.5; margin: 0px 0px 0px 5px; overflow: visible; cursor: pointer; vertical-align: middle; background-image: none; border: 1px solid transparent; white-space: nowrap; padding: 1px 5px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; -webkit-user-select: none; box-shadow: rgba(0, 0, 0, 0.0980392) 0px 1px 2px; background-color: rgba(0, 0, 0, 0.74902);">复制
ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/xcodeproj

方法:查看~/.cocoapods/repo里是否有master,如果没有则之行下面这句:

$ pod setup

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


然后我们在终端中再次之行

$ sudo gem install cocoapods

等上十几秒钟,CocoaPods就可以在你本地下载并且安装好了,不再需要其他设置。


如何使用CocoaPod利用CocoaPods,在项目中导入AFNetworking类库(在利用CocoaPods导入类库的时候需要先确认该类库支持CocoaPods)

首先,我们需要在我们的项目中加入CocoaPods的支持。先利用Xcode创建一个名字CocoaPodsDemo的项目,创建好之后我们就要先创建一个文件来控制CocoaPods该下载什么。这个文件就叫做“Podfile”(注意,一定得是这个文件名,而且没有后缀)。你创建一个Podfile文件,然后在里面添加你需要下载的类库,也就是告诉CocoaPods,“某某和某某和某某某,快到碗里来!”。注意:每个项目只需要一个Podfile文件。

我们先创建这个神奇的PodFile。在终端中进入(cd命令)你项目所在目录,然后在当前目录下,利用vim创建Podfile,运行:

$ vim Podfile

然后在Podfile文件中输入以下文字:

platform :ios, '7.0'
pod "AFNetworking", "~> 2.0"

这两句文字的意思是,当前AFNetworking支持的iOS最高版本是iOS 7.0, 要下载的AFNetworking版本是2.0。

然后保存退出。vim环境下,保存退出命令是:

:wq

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

这时候,你就可以利用CocoPods下载AFNetworking类库了。

还是在终端中的当前项目目录下,运行以下命令:

$ pod install --verbose --no-repo-update

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

这时候如果报错了:

[!] The dependency `MBProgressHUD (~> 0.8)` is not used in any concrete target.

The dependency `AFNetworking (~> 2.1.0)` is not used in any concrete target.

The dependency `JSONKit-NoWarning (~> 1.1)` is not used in any concrete target.

这时候不要慌:错误告诉我们是 target 的问题,解决方法:

发现了这个错误之后呢使用命令:open -e Podfile这个文件进行编辑编辑成我上面这种模样的然后commond+s保存关闭编辑再次使用(这种方式有时候会因为引号的格式不正确而出错,这时候最好是在XCode中编辑或者在终端中编辑)

pod install --verbose --no-repo-update
命令就可以了



按照上面的格式来就好,其中‘TTTTTTTT’是我的项目名称,这时候我们会发现我们想要的都有了:


 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值