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的使用详解的更多相关文章

  1. [ios]安装CocoaPods及使用详解

    最新 macOS Sierra 10.12.3 安装CocoaPods及使用详解 http://www.jianshu.com/p/b64b4fd08d3c CocoaPods的安装以及遇到的坑 ht ...

  2. 最新Mac OS X 10.12.1 安装cocoapods及使用详解

    cocoapods官网:https://cocoapods.org 一.什么是CocoaPods 每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 Maven,nodejs ...

  3. iOS最新Mac OS X 10.11之后 安装cocoapods及使用详解

    iOS 最新版 CocoaPods 的安装流程 一.安装方法: 1.移除现有Ruby默认源 gem sources --remove https://rubygems.org/ 为了提高安装的成功几率 ...

  4. 最新 macOS Sierra 10.12.3 安装CocoaPods及使用详解

    一.什么是CocoaPods 每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 Maven,nodejs 的 npm.随着 iOS 开发者的增多,业界也出现了为 iOS 程序 ...

  5. cocoapods 安装使用详解

    http://blog.csdn.net/showhilllee/article/details/38398119 http://www.jianshu.com/p/1222dd6c4271  删除 ...

  6. CocoaPods详解之(三)----制作篇

    CocoaPods详解之----制作篇 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/20067595 转载请注明出处 ...

  7. CocoaPods详解之(二)----进阶篇

    CocoaPods详解之----进阶篇 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/19178709 转载请注明出处 ...

  8. CocoaPods详解之(一)----使用篇

    CocoaPods详解之----使用篇 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/18737437 一.什么是Coc ...

  9. CocoaPods 详解之----更新篇

    CocoaPods 大概是 2011 年出现的开源组件管理工具(目前已支持 Objective-C 和 Swift),近年来普及率越来越高,几乎已是所有 Cocoa 开源项目的标配.另外,很多大点的团 ...

随机推荐

  1. hdu 2715 Herd Sums

    Herd Sums Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  2. CSS layout入门

    元素与盒 在HTML中常常使用的概念是元素,而在CSS中,布局的基本单位是盒,盒总是矩形的. 元素与盒并非一一对应的关系,一个元素可能生成多个盒,CSS规则中的伪元素也可能生成盒,display属性为 ...

  3. IsPostBack

    1.IsPostBack介绍Page.IsPostBack是一个标志:当前请求是否第一次打开. 调用方法为:Page.IsPostBack或者IsPostBack或者this.IsPostBack或者 ...

  4. KEEPALIVED 检测RS原理

    keepalived管理的的ipvs功能支持对后端节点真实服务器的健康检查 一般常用的方式包括tcp_check 和http_get(更准确) tcp_check 原理就是对真实服务器进行ip+端口的 ...

  5. 修改cmd字体为Consolas

    windows下的cmd窗口默认的字体有点难看,长时间使用操作nodejs有点小疲劳,可以修改注册表替换字体为Consolas,并且可以全屏cmd窗口,代码如下: Windows Registry E ...

  6. SqlLite ---.net连接数据库

    初识SqlLite ---.net连接数据库   SqlLite以小巧和嵌入式闻名,以前只是听说,现在终于忍不住要尝试下. 先下载ADO.NET2.0 Provider for SQLite,下载完后 ...

  7. 剑指OFFER之二叉树中和为某一值的路径(九度OJ1368)

    题目描述: 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径. 输入: 每个测试案例包括n+1行: 第一行为2 ...

  8. Ant-常用命令(笔记二)

    1.copy命令: <?xml version="1.0" encoding="utf-8"?> <project name="co ...

  9. 【转】于request.getSession(true/false/null)的区别

    http://blog.csdn.net/gaolinwu/article/details/7285783 关于request.getSession(true/false/null)的区别 一.需求原 ...

  10. mysql优化--博森瑞

    http://blog.itpub.net/28916011/viewspace-1758440/ 现在说一下mysql的内存和I/O方面的两个特点. 一. mysql内存特点: 1.  也有全局内存 ...