cocoapods 能够很好的管理第三方库了,所以每一个ios开发者都必须会这一类技能。
好了,废话也不多说,直接进入主题。
首先我们应该要清楚,cocoapods 是基于ruby环境的,所以我们的电脑一定要安装ruby环境。好在一般mac电脑都有自带ruby系统。所以我这里略过如何安装ruby环境了。
我的电脑是os x 10.11系统,
安装Cocopods的时候一般会报错的。
解决方案如下。
安装cocoapods时出现错误
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/pod
解决办法
sudo gem install -n /usr/local/bin cocoapods
好了,这个时候我们已经安装好了,cocoapods环境
现在我们来新建一个xcode项目:
这里我已经建好了。
如图
这个时候我们打开终端
然后cd 到podsTest2这个文件夹,可以输入cd 再按空格,再直接把这个文件夹拖到终端,然后回车
再输入vim Podfile 进入这个创建podFile
键盘输入 i,进入编辑模式,输入
platform :ios, '8.0'
pod 'AFNetWorking', '~> 3.0'
pod 'SDWebImage','~>2.0'
然后按Esc,并且输入“ :”号进入vim命令模式,然后在冒号后边输入wq,回车,发现这个文件夹下多了一个podFile文件
这个时候要真正开始安装pod 对应的库了,
cd 进入当前目录
然后输入pod install,(大家这里可能注意到了我下面的图是podsTest2,没错,我刚才这里遇到一个坑,发现安装不了)
会报下面的错误,具体自己去看看,
需要切换一个xcode吧。我也是在网上找了一些资料才解决的问题.大家按我这个步骤下去,就没有问题了。
这时,你的目录下面是这样的,你要使用PodsTest2.xcworkspace打开项目,可以看到项目中已经有了pods
到这里,cocoapods已经弄好了。
注意:其实很多时候,如果我们的cocoapods如果没有更新是不能安装第三方包的,有时也会提示一些信息,下面在终端里会有一些提示,我这里就有这些提示。
1.我先用命令行来查看了我当前pods 的版本好,看好了是0.39.0 已经是比较老的版本了
2.当然我没有理会太多,我直接使用cocoapods 来下载第三方包,结果有一提示了,虽然我需要的第三方包已经下载下来了。
3.我试用去更新一下cocoapods,结果路径上出了问题,于是我再个性了一下位置 见4.
5.我已经把cocoapods更新了,最新版本是1.0.0.beta.6
使用命令行 pod search AFNetWorking 可以查询所有与AFNetWorking相关的类库,以及可以查找到一些基于AFN 封装的类库及最新版本
发现更新时报错了,
上面红字说我没有指定我们我们所用的库没有指定target,它不知道用在哪里,所以就给报错了,百度查了一下官方资料
按照这个格式,我指定了我的工程名字到里面,可以正确更新了,
如今我们已经成功把一些需要的库添加到工程里了,这个时候我们可以用iOSCmmon.XCworkspace(这个是pod生成的),打开工程,可以看到多了一个pods文件夹,然后再打开一个ViewController 引入我们刚才添加的那些库,发现不能直接引用。????
百度了下,可以在target-Build Settings下修改“User Header Search Paths”项,新增${SRCROOT}并把属性选择rcursive,
我这里已经成功添加了,这个时候就可以盾到可以把AFN 引入进来
到此,新建工程并使用CocoaPods来管理依赖库的过程就完成了,如果是直接使用已有CocoaPods的项目,则需要首先运行一下pod update命令来更新项,然后照样通过.xcworkspace来打开工程。
如果需要依赖多个第三方类库,只需要修改Podfile文件的配置,然后运行pod update命令即可,比如新增一个AFNetworking的依赖库,首先执行pod search AFNetworking查看一下AFNetworking的配置信息,修改Podfile文件,在后面增加AFNetworking的对应配置信息,然后运行pod update命令就完成了对AFNetworking的集成。
附:有些地方是引用了一些网友的经验,在此一一致谢了。
直接看图吧,其实我们在编辑PodFile文件的时候不指定版本号,照样可以编辑成功的,切记每个pod 后面不需要逗号结尾 但个人建议还是要带上版本号
因为我们后续更新的时候如果版本与之前的库版本不兼容,或有冲突就麻烦了,自己管理这个pods还好,如果是其它人来管理这个pods时很容易出现问题,所以我们最好还是要带上版本号,第一次下载的时候不需要带上版本号,后面更新的时候,一定要带上版本号,防止出现冲突。