本篇文章主要是写一点关于Cocoapods配置上遇到的问题以及解决方式。
以前在做开发是添加三方库的时候总是手动添加,比较麻烦。然后自己摸索着配置了Cocoapods,用起来非常方便,所以记录下来和大家共同探讨。废话不多说,我们开始。
文章大概分为以下几个部分;
一.配置rvm,在Mac上安装ruby运行环境;
二.cocoapods的安装
三.cocoapods的使用
一.在Mac上安装ruby运行环境。
有关如何在Mac上安装ruby,详细步骤请参考http://www.cnblogs.com/daguo/p/4097263.html--作者写的已非常详细,这里只说一下我在安装的过程中遇到的一些问题:
我在刚开始安装rvm时选择了文档中给出的版本,也就是2.0版本,但是在终端运行的时候却出现这样的错误
猜想可能是Mac的系统版本过高,所以要安装最新版的rvm,于是我重新执行语句。等了一会果然安装成功。
设置ruby版本的时候 解决 Gemset '' does not exist, 'rvm ruby-2.2.2 do rvm gemset create ' first, or append '--create'.
>rvm --create ruby-2.2.2
>rvm 2.2.2 --default
安装时可能还会出现其他问题,可以键入rvm的help语句,根据提示解决。
二.cocoapods的安装
1.新建一个工程
安装好ruby环境后接下来就是配置安装cocoapods啦。
方法很简单,只需要在terminator(终端)键入以下语句;
$ sudo gem install cocoapods
等上十几秒就会出现这样的结果
这就代表你安装成功了,666.
三.cocoapods的使用
cocoapods的使用和安装也一样简单,为了方便我们可以先在xcode建立一个工程。
大家可能疑惑怎样才能把我想要的三方库添加进工程里面呢?那么我们需要一个文件来写入我们想要的三方库的名称,这个文件就叫做“Podfile”,创建这个文件我们只需要在终端打开工程所在的文件目录(cd目录)然后在当前目录下,键入语句:
$vim podfile
然后在vim环境下写入你想添加的三方库的名称,例如我要添加MJRefresh,那我就输入:
pod ’MJRefresh’
然后保存更改,退出。
(:wq)
这时候你在看工程目录里多了个podfile的文件,注意podfile文件一定要和工程的.xcodeproj文件在同一目录下。
最后,在终端里运行命令:
$ pod install
运行结束后你会看到这样的结果 :
[!] Please close any current Xcode sessions and use `XXX.xcworkspace` for this project from now on.
然后你会发现目录里多了个XXX.xcworkspace文件和podfile.lock文件。这就对了!
而上面结果的意思就是让你关闭当前项目然后点击XXX.xcworkspace文件重新打开工程。当你打开工程时你会发现你要添加的三方库已经添加了!
如果你后续还要添加其他的三方库你只需要打开podfile文件,按照 pod ' '的格式一次写入文件,然后执行命令就可以了。如图:
总结一下:
1.先在项目中创建Podfile,Podfile的内容是你想导入的类库。一般类库的原作者会告诉你导入该类库应该如何写Podfile;
2.运行命令:$ pod install。
2.编译一个有cocoapods类库的项目
我们在网上下载的含有cocoapods的demo时候,有时候编译会出现一堆报红,大概原因就是找不到相关库的头文件。不要着急这可能是因为demo里面的podfile文件过期,三方库版本过低造成的。
解决方法就是在终端里运行以下命令:
$ pod update
等待运行结束,文件夹里就会生成一个名为XXX.xcworkspace的文件,这时候我们就可以通过这个文件打开工程了。
以上只是我的一些小见解,如果你觉得上面的叙述有问题,或者你有补充,请私信或评论。
更正:如果要增加新的类库尽量不要在podfile文件里面直接修改了 可以在终端或者xcode里面修改保存 再执行pod命令
更新:使用过程中的一些问题
1.The dependency `MJExtension ` is not used in any concrete target 或者The dependency `SD_WebImage ` is not used in any concrete target
这个错误是因为所用的库找不到指定的target 直接在终端或者xcode里面加下图语句
将GiftTalk改成你的项目名称然后执行pod update就可以了。
2.[!] Invalid `Podfile` file: syntax error, unexpected end-of-input, expecting keyword_end.无效的podfile文件。
关于这个问题我是参考了作者的方法解决的 http://www.cnblogs.com/mgbert/p/3945273.html 大家可以调试下。
以上是目前笔者遇到的问题 记录下来 。以后再更新。