CocoaPods的使用

当在开发iOS应用时,会经常使用到很多第三方开源类库,而这些开源类库会依赖一些其他的类库,那么就得自己手动导入,不仅如此,如果项目中用到的类库有更新了,那就得重新下载新的版本,十分麻烦。那么如果使用CocoaPods就是可以大大简便了这些操作。CocosPods是iOS中很常用的类库管理工具,据已经工作的学员反应,好多人也在使用这个工具。重要性不多说,咱们一起看看怎么使用:

1、下载和安装CocoaPods

在安装CocoaPods之前,首先要在本地安装好Ruby环境。

(1)打开终端在终端输入

    sudo gem install -V cocoapods 

输入后会让你输入密码,输入自己电脑的密码就OK了。

注:我一开始在终端输入上面那行指令的时候,好久都没有反应,在网上查阅说是被墙了,因为ruby的软件源rubygems.org使用的是亚马逊的云服务,所以被墙了,需要更新一下ruby的源,如下代码将官方的ruby源替换成国内淘宝的源:

以此输入以下三行代码:

gem sources --remove https://rubygems.org/

gem sources -a http://ruby.taobao.org/

gem sources -l

我输入上面三行代码后,在终端显示的如图所示:

此时再次输入 sudo gem install -V cocoapods就可以了,但是还是得等一段时间,操作完成后显示的是:



如果显示上面的信息,那就说明成功了。

网上说在运行上面那行指令的时候可能还遇到其他两种错误情况,我这边没有掩饰出来,在这边给大家做一个总结:

(1)提示错误:clang: error: no such file or directory: 'xcodeproj_ext.o'

make: *** [xcodeproj_ext.bundle] Error 1等等。这个错误提示是说找不到xcode。

解决办法:在终端输入:sudo xcode-select --switch /Applications/Xcode5-DP5.app/Contents/Developer(Xcode5-DP5是Xcode版本号)

(2)错误提示说cocoapods版本需要更新,那么更新就行了。

解决办法:终端上输入:sudo gem update -V(注:如果更新出错或者发现cocoapods不是最新版本的话,最好就是去下载一个最新版本,然后在本地安装)

2、测试pod的搜索功能

咱们需要什么类库都可以使用pod来搜索来搜索,比如说咱们最近经常使用的网络加载框架AFNetworking,只需要在终端输入:pod search + 类库的名字。(pod search AFNetworking)

注意:第一次使用的时候会卡顿在Setting up CocoaPods master repo处,原因可能是网络问题,或者被墙了,按照上面的顺序应该是不会被墙了,那么只要有网速,耐心等待就行。


如果想看看搜索的进度,可以另开启一个终端

(1)输入cd  ~/.cocoapods

(2)进入.cocoapods之后,输入du -sh查看文件的大小。当文件达到128M的时候说明初始化完成


初始化完成后在另一个终端显示的如图所示:


上面的搜索操作如果成功了,说明说明cocoapods安装成功。

3、简单使用cocoapods

 (1)创建Podfile:CocoaPods的一切都是从一个名为Podfile的文件开始的,我们需要先创建这个文件。

    创建Podfile的方法网上有好多种,可能是我使用方法问题或者那些方法介绍不够全面,我最终使用的是下面这种方法:

我们以一个例子来说明:

我先在桌面上创建了一个工程Demo。它的文件构成如下所示:


下面我们通过终端创建Podfile文件:

<1>使用终端找到当前这个工程文件,这个很简单:(cd 后面加路径)

cd desktop/Demo

<2>创建空白的Podfile空文件。(注意:名字必须是Podfile)

终端输入:touch Podfile

此时(大家看图就知道了)


<3>在Podfile文件中写入我们需要使用的框架,我们还是以AFNetworking为例。AFNetworking在GitHub地址:https://github.com/AFNetworking/AFNetworking,在这个网页上面提示让我们怎么写,内容如下:

platform :ios, '7.0'

pod "AFNetworking", "~> 2.0”

并且保存即可,这两行语句的意思是:当前AFNetworking支持的iOS最低版本是iOS 7.0, 要下载的AFNetworking版本是2.0。

<4>执行导入命令

使用终端输入两行指令:

cd + 项目的根目录

然后输入:pod install    


如图所示:


(注:这里面最后一行的内容,大体意思是说:以后打开项目用Demo.xcworkspace 打开,而不是之前的.xcodeproj文件),那什么是Demo.xcworkspace呢?现在再打开那个文件组成看看有什么区别:


可见现在多了三个文 件,分别是:Demo.xcworkspace、Podfile.lock文件和Pods目录。


现在根据它的要求打开Demo.xcworkspace,文件构成如下所示:


它的文件结构还是很明显的,我们需要特别注意的是AFNetworking已经在项目中了,并且测试是可以使用的。


至此我们需要注意的是:

(1)从现在起,我们只需要使用后缀名为.xcworkspace文件来开发

(2)第三方库会被编译成静态库供我们正真的工程使用,整个第三方库工程会生成一个名称为libPods.a的静态库提供给我们自己的CocoaPodsTest工程使用。

(3)我们的工程和第三方库所在的工程会由一个新生成的workspace管理,为了方便我们直观的管理工程和第三方库,CocoaPodsTest工程和Pods工程会被以workspace的形式组织和管理,也就是我们刚才看到的CocoaPodsTest.xcworkspace文件。

(4)每次更改了Podfile文件,你需要重新执行一次pod update命令。


4、使用cocoapods的注意点:

(1)前面我们只是使用了一个第三方框架,那么如果使用多个的操作有什么注意的地方:就是在Podfile文件中有点区别。比如我们需要使用JSONKit、Reachability、RegexKitLite。那么在Podfile中可以这么写:

platform :ios

pod 'JSONKit',       '~> 1.4'

pod 'Reachability',  '~> 3.0.0'

pod ‘RegexKitLite'

其他操作不变。


(2)如果不知道cocoaPods管理的库中,是否有你想要的库,那么你可以通过pod search命令进行查找,如果可以找到,恭喜!可以使用。


(3)上面那个AFNetworking我在测试的时发现import这个框架不会提示,我在网上查阅到可以通过下面这个操作解决:设置头文件的目录,在项目的Target的里设置一下”User header Search Paths“:${SRCROOT},后面选上recursive。


(4)The platform of the target Pods (iOS 4.3) is not compatible with 。。。。,解决办法:这是因为一些第三方库最低版本号大于Pods的版本号不兼容导致的,打开项目中 Podfile 文件 修改其 iOS平台为对应平台,如iOS5.0,podfile没写时默认是4.3.


(5)在后续开发项目的时候可以在改动Podfile文件,别忘了重新执行一次pod update命令。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值