Cocoapods的安装与使用

ios开发之Cocoapods的安装与使用

一.CocoaPods是什么

CocoaPods是ios中的一个管理第三方库的类库管理工具,它解决了库与库之间的依赖关系,同时通过创建一个Xcode的workspace来将这些第三方库和我们的工程连接起来,供我们开发使用

CocoaPods通过集中式的管理,可以非常有效的管理第三方库,甚至可以用于大型项目的模块化管理,非常优雅高效的解决了ios项目中的依赖管理

二.如何下载安装CocoaPods

1、将ruby的原生镜像移除

 

2、用淘宝的镜像代替

因为国内有墙的限制,会造成安装CocoaPods的过程变得十分慢,

替换为淘宝的镜像速度回相对比较快

 

3、查看是否设置成功

 

4、安装Cocoapods

 

5、查看Cocoapods是否支持某个类库,只要能够查询到框架就表明这个这台电脑Cocoapods已经安装成功。

 

三.可能遇到的问题

1、pods search 搜索库的时候报错 Unable to find a specification for xxx

 

2、安装的时候报错selected xcode error

解决方法:运行这句代码,然后重新安装

 

CocoaPods相当于一款软件,在电脑上安装成功以后就可以直接使用它来给项目集成框架,不需要重复上面的操作

四.在项目中如何使用CocoaPods

我们通过集成MJrefresh类库来掩饰如何使用CocoaPods来做依赖库管理。首先建立一个Xcode工程,命名为CocoaPodsTest,现在工程结构图如下:

1、检查MJrefresh是否支持Cocoapods,支持模糊查询

 

出现Setting up CocoaPods master repo,说明Cocoapods正在将它的信息下载到 ~/.cocoapods里,保持这个终端不动,新打开一个终端,cd到该目录里,用du -sh命令来查看文件大小,每隔几分钟查看一次,我的这个目录最终大小是211M,就是完成了。如果不成功,在下面会显示一个git的网址,在这个网址下载相应的文件放在~/.cocoapods相应的文件夹便可。

 执行后通过输出结果可以看到mjrefresh是支持CocoaPods的,注意红框标记的内容,这是待会我们配置xcode时需要的信息,这条配置项就是告诉CocoaPods去下载和管理第三方库的哪一个版本。

2、检测完毕后我们在终端里来到工程CocoaPodsTest的目录下。

 

3、 管理第三方库的PodFile文件

 

利用终端运行以上代码会在工程里打开一个名为Podfile(注意大小写)的文件。如果有这个文件会在终端中打开,如果没有这个文件会新建后打开。这个Podfile文件的作用是配置依赖库信息,就是告诉CocoaPods去下载和管理哪些依赖库。

4、在文件里写入你想用的框架

文件创建好以后,需要写的内容就是在上图中的红圈表示的信息。版本号可以根据自己的需求改变。vim打开文件后按i进入插入模式,编辑完成后按esc退出编辑模式,接着输入:wq保存并退出文件。保存以后可以在C文件夹里验证一下是否有Cocoapods这个文件。下图中我写了好几个框架。

 

5、将第三方库集成到项目中

如果之前的全部工作都完成了,工程目录下就会有一个Podfile文件了,注意必须和.xcodeproj在同一个目录下。接下来就可以使用CocoaPods来安装并管理JSONKit库了,首先确保终端当前路径是在CocoaPodsTest目录下。

 

路径没有问题后运行

 

安装结束以后会有如下提示

 

最重要的是这句话:

 

6、通过xcoworkspace打开项目

会多出一个名为Pods的依赖工程,打开/Pods/Pods文件夹后,能找到我们在Podfile写的各种第三方库。

7、至此用Cocoapods管理第三方框架的所有工作做完。

如果需要依赖多个第三方类库,只需要修改Podfile文件的配置,然后运行pod update命令即可,比如新增一个AFNetworking的依赖库,首先执行pod search AFNetworking查看一下AFNetworking的配置信息,修改Podfile文件,在后面增加AFNetworking的对应配置信息,然后运行pod update命令就完成了对AFNetworking的集成。

原文来自:http://blog.treney.com/index.php/archives/Cocoapods.html?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io

原文地址:https://www.cnblogs.com/somebodywx/p/5375656.html