CocoaPods的使用详解
CocoaPods是什么
当我们开发 iOS 项目时候,会经常使用到第三方类库,并且会使用很多。大家的做法基本上都是到 GitHub 上下载一个一个的类库,然后导入到工程中,并且引入各种的类库,做各种的配置。有时候还要处理 ARC 与 MRC 的问题,很麻烦;还有一种情况,就是当第三方类库出现升级的情况时候,我们还需要删掉旧的,下载新的,再重新导入。
以上问题超级的烦人。。。CocoaPods就是类库管理工具,刚刚提到所有麻烦的操作,CocoaPods都能解决。
安装CocoaPods
安装 CocoaPods 需要本地 Ruby 环境,默认情况下,Mac 自带 Ruby 环境,可以通过在终端输入命令
ruby -v
查看 Ruby 版本。
由于 Ruby 的淘宝镜像源停止了更新,所以现在使用 CocoaPods 的同学,都请更新到 Ruby China 社区网站下的镜像源,具体方法请参考 Ruby-China.
接下来进行安装,使用如下命令:
sudo gem install cocoapods
OS X 10.11以后,如果继续使用上面的命令,终端会提示如下错误:

解决办法换成了在终端输入以下命令:
sudo gem install -n /usr/local/bin cocoapods
等待执行完毕,看到如下提示,恭喜你,安装完成。

如果遇到其它的安装问题,请自行Google解决吧。
使用CocoaPods
安装已经完成了,下面就来教大家如何使用。
做一个项目,项目中需要使用 SDWebImage,看看如何使用 CocoaPods 进行安装
首先使用如下命令,查看 CocoaPods 是否支持 SDWebImage 类库
pod search SDWebImage
注意圈住的那一行,一会需要使用。这行信息是告诉CocoaPods去下载哪一个第三方类库和它的哪一个版本,是一条配置信息。可以看到下面这些搜索结果,表示SDWebImage是可以的,

下面创建空的项目,然后使用CocoaPods往项目中导入SDWebImage类库:
1>. 创建项目 CocoaPods_Test,保存到桌面
2>. 在终端输入 cd空格,拖入项目文件夹,回车,进入项目所在的根目录
3>.通过命令行创建Podfile文件,该文件的作用是配置第三方类库的信息,就是告诉CocoaPods去管理哪些类库
vim Podfile
4>. 接下来,我们就可以使用命令来安装第三方类库了,(确保终端路径在项目根目录)运行如下命令: vim打开文件后,按i进入编辑模式,输入如下文字:

里面的pod 'SDWebImage', '~> 3.7.1'就是我们在上面圈住的那一行。
输入完成后按ESC退出编辑模式,接着输入:wq,并按回车键进行保存并退出。
上面的操作完成之后,我们可以在项目根目录发现一个没有后缀的Podfile文件,这就是刚刚创建的文件,里面保存了需要使用的第三方类库的信息。(注意:Podfile文件必须和.xcodeproj文件在同一目录下)
pod install
5>. 双击项目中的CocoaPods_Test.xcworkspace文件来打开项目,你会看到如下目录结构:当我们看到这样的提示,就表示你操作成功:

注意最后一句话:”Please close any current Xcode sessions and use ‘CocoaPods_Test.xcworkspace’for this project from now on”。这就是告诉我们,从现在开始需要使用这个文件来打开项目,而不在是之前的.xcodeproj

我们会发现多了一个Pods的依赖工程,打开Pods文件夹后,发现SDWebImage已经在这里面了。
6>. 现在,我们就可以在想要使用SDWebImage的文件中,引入需要的文件,然后就可以正常使用了。
7>. 到现在为止,你已经学会了如何使用CocoaPods来添加第三方类库。如果我们需要使用多个第三方类库,只需要修改Podfile文件就可以了,如下:

NOTE:怎么样,过程很简单吧。只需要: 1.查询 2.修改Podfile文件 3.安装 即可完成!
其它
当我们想要重新安装CocoaPods的时候,需要卸载这个东西,很简单,只需要执行以下命令即可:
sudo gem uninstall CocoaPods
第三方版本号的各种写法与含义:如果安装了多个版本,选择 All,即可全部卸载!
pod 'AFNetworking' //不显式指定依赖库版本,表示每次都获取最新版本
pod 'AFNetworking', '2.0' //只使用2.0版本
pod 'AFNetworking', '>2.0' //使用高于2.0的版本
pod 'AFNetworking', '>=2.0' //使用大于或等于2.0的版本
pod 'AFNetworking', '<2.0' //使用小于2.0的版本
pod 'AFNetworking', '<=2.0' //使用小于或等于2.0的版本
pod 'AFNetworking', '~>0.1.2' //使用大于等于0.1.2但小于0.2的版本,相当于>=0.1.2并且<0.2.0
pod 'AFNetworking', '~>0.1' //使用大于等于0.1但小于1.0的版本
pod 'AFNetworking', '~>0' //高于0的版本,写这个限制和什么都不写是一个效果,都表示使用最新版本
CocoaPods的使用详解的更多相关文章
- [ios]安装CocoaPods及使用详解
最新 macOS Sierra 10.12.3 安装CocoaPods及使用详解 http://www.jianshu.com/p/b64b4fd08d3c CocoaPods的安装以及遇到的坑 ht ...
- 最新Mac OS X 10.12.1 安装cocoapods及使用详解
cocoapods官网:https://cocoapods.org 一.什么是CocoaPods 每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 Maven,nodejs ...
- iOS最新Mac OS X 10.11之后 安装cocoapods及使用详解
iOS 最新版 CocoaPods 的安装流程 一.安装方法: 1.移除现有Ruby默认源 gem sources --remove https://rubygems.org/ 为了提高安装的成功几率 ...
- 最新 macOS Sierra 10.12.3 安装CocoaPods及使用详解
一.什么是CocoaPods 每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 Maven,nodejs 的 npm.随着 iOS 开发者的增多,业界也出现了为 iOS 程序 ...
- cocoapods 安装使用详解
http://blog.csdn.net/showhilllee/article/details/38398119 http://www.jianshu.com/p/1222dd6c4271 删除 ...
- CocoaPods详解之(三)----制作篇
CocoaPods详解之----制作篇 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/20067595 转载请注明出处 ...
- CocoaPods详解之(二)----进阶篇
CocoaPods详解之----进阶篇 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/19178709 转载请注明出处 ...
- CocoaPods详解之(一)----使用篇
CocoaPods详解之----使用篇 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/18737437 一.什么是Coc ...
- CocoaPods 详解之----更新篇
CocoaPods 大概是 2011 年出现的开源组件管理工具(目前已支持 Objective-C 和 Swift),近年来普及率越来越高,几乎已是所有 Cocoa 开源项目的标配.另外,很多大点的团 ...
随机推荐
- light oj 1138
Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu Submit Status Pract ...
- 针对 .NET 框架的安全编码指南
此主题尚未评级 - 评价此主题 发布日期 : 10/9/2004 | 更新日期 : 10/9/2004 Microsoft Corporation 适用于: Microsoft .NET 框架 摘 ...
- The Sorrows of Young Werther
The Sorrows of Young Werther J.W. von Goethe Thomas Carlyle and R.D. Boylan Edited by Nathen Haskell ...
- 【推荐】对 Linux 用户非常有用的 60 个命令(由浅入深)
对 Linux 新手非常有用的 20 个命令 http://www.oschina.net/translate/useful-linux-commands-for-newbies 对 Linux 中级 ...
- iOS 获取当前月份的天数(转)、
转:http://www.cnblogs.com/kingbo/p/3966855.html . 获取当前月份有多少天 NSCalendar *calendar = [NSCalendarcurren ...
- hadoop学习;block数据块;mapreduce实现样例;UnsupportedClassVersionError异常;关联项目源代码
对于开源的东东,尤其是刚出来不久,我认为最好的学习方式就是能够看源代码和doc,測试它的样例 为了方便查看源代码,关联导入源代码的项目 先前的项目导入源代码是关联了源代码文件 block数据块,在配置 ...
- JS 数据类型转换-转换函数、强制类型转换、利用js变量弱类型转换
1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才能正确运行:对其他类型 ...
- C++在使用Qt中SLOT宏须要注意的一个小细节
大家都知道C++虚函数的机制,对于基类定义为虚函数的地方,子类假设覆写,在基类指针或者引用来指向子类的时候会实现动态绑定. 但假设指针去调用非虚函数,这个时候会调用C++的静态绑定,去推断当前的指针是 ...
- Android开发心得(转)
前言: 很早以前,就听人说过android以后会火起来,作为一个前瞻性对它有所了解会是一个转型的好机会,javaweb太成熟饱和了,现在市面上各种android手机层出不穷,网上各种android视频 ...
- 设计模式之Composite模式(笔记)
组合模式:将对象组合成树形结构以表示"部分-总体"的层次结构. 组合模式使得用户对单个对象和组合对象的使用具有一致性. 适用场合:当需求中是体现部分与总体层次的结构时,以及希望用户 ...