在iOS开发中,必不可少的会用到很多第三方的开源类库,而CocoaPods应该是iOS最常用最有名的类库管理工具了。而且有时你从网上下载的很多开源的项目都会用的cocoapods的,也许就会用到各种各样的问题,比如今天的我就是这种情况。虽然cocoapods的安装和使用是很简单,但是我今天却是一路坎坷,下面直接步入正题。
1.安装
(1).CocoaPods是用Ruby实现的,要想使用它首先需要有Ruby的环境。幸运的是OS X系统默认的已经可以运行Ruby了,因此我们只需要执行以下命令:
$ sudo gem install cocoa pods
然后就是一段漫长的等待,至于要多久,不要问我,因为我也不知道,也不要问我是为什么,因为这是天朝,没有为什么,但是你要问我有没有解决方法,我可以告诉你,有的!我们可以用淘宝的Ruby镜像来访问cocoapods,在终端中敲入如下命令:
$ gem sources --remove https://rubygems.org/
//等有反应之后再敲入以下命令
$ gem sources -a https://ruby.taobao.org/
注:在这里小编提醒各位,因为好多网上的教程是$ gem sources -a http://ruby.taobao.org/,这个是iOS9之前的命令,iOS9之后改成的https请求,所以这里一定要注意哦
想检验是否替换成功,在终端中敲入下行命令:
$ gem sources -l
如果终端返回的是下面的文字,说明你已经替换成功了
*** CURRENT SOURCES ***
https://ruby.taobao.org/
(2).然后就可以直接更新cocoapods了,在终端中输入下行命令:
$ sudo gem install cocoapods
当然,这样也会遇到别的问题:
①.gem的版本过低,解决方案是升级gem,在终端中输入下述命令即可:
$ sudo gem update --system
②.如果终端给你回的是下面的错误的话:
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/pod
则此时你则需要用用下述命令进行cocoapod的更新:
$ sudo gem install -n /usr/local/bin cocoapods
到这里,cocoapods的安装基本上已经完成了,下面谈使用。
2.使用
(1).首先在终端里进入你项目所在的目录(cd + 项目的路径),然后在当前目录下,利用vim创建Podfile,运行:
$ vim Podfile
然后在Podfile文件中输入以下文字:
platform :ios, '7.0'
pod "AFNetworking", "~> 2.0"
然后保存退出。vim环境下,保存退出命令是:
:wq
这时候,你就可以利用CocoPods下载AFNetworking类库了。还是在终端中的当前项目目录下,运行以下命令:
$ pod install
提示:一般情况下这个安装都是比较漫长的,所以小编提醒你可以用下述命令代替上条命令
$ pod install --no-repo-update
(2).也可以用cocoapods查询某个三方类库是否支持cocoapods,比如为了确定AFNetworking是否支持CocoaPods,在终端中输入:
$ pod search AFNetworking
过几秒钟之后你会见到AFNetworking的各种版本信息,如下图:
但是,如果终端给你返回的是这种信息
$ pod search AFNetworking
[!] Unable to find a pod with name matching `AFNetworking'
或者
$ pod install
Analyzing dependencies
[!] Unable to find a specification for `AFNetworking`
解决方法如下,在终端中输入下述命令:
$ rm -rf ~/.cocoapods
$ pod setup
$ pod install
(3).当你运行一个已有cocoapods的项目的时候,如果你想添加别的三方类库,直接把你想添加的三方库名加入Podfile中,然后运行:
$ pod update
提示:如果这个等待很漫长的话,可以用下面的命令:
$ pod update --no-repo-update
(4).如果你从网上下载一个开源项目,打开之后却是这种情况
也不用怕,这是Podfile文件丢失造成的,你只需重新下载个Podfile文件即可,在终端中进入项目所在的目录,然后在此目录下输入下述命令:
$ pod install --no-repo-update
一般情况下就会把项目复原的!
这就是小编在今天使用cocoapods中遇到的问题和心得,分享一下,希望对大家有用!