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 开源项目的标配.另外,很多大点的团 ...
随机推荐
- EasyUI datagrid自适应问题解决
在使用js 动态创建EasyUI datagrid时,如果设置fit为true,在显示的时候数据的高度为固定高度不能自适应 解决办法是把fit设为false. 但这样设置后又有个问题,如果把colum ...
- 总结一下ERP .NET程序员必须掌握的.NET技术
总结一下ERP .NET程序员必须掌握的.NET技术,掌握了这些技术工作起来才得心应手 从毕业做.NET到现在,有好几年了,自认为只能是达到熟练的水平,谈不上精通.所以,总结一下,自己到底熟练掌握 ...
- java 实现视频转换通用工具类:视频截图-Ffmpeg(四)
java 实现视频转换通用工具类:获取视频元数据信息(一) java 实现视频转换通用工具类:视频相互转换-总方法及Mencoder(二) java 实现视频转换通用工具类:视频相互转换-Ffmpeg ...
- sqlninja 说明 (转)
首先来介绍一下sqlninja的优点. 一个专门针对Microsoft SQL Server的sql注入工具 可找到远程SQL服务器的标志和特征(版本.用户执行的查询.用户特权.xp_cmdshell ...
- Process学习
主要系统总结下我对进程的认识,以前理解得不够全面不够深入.本文肯定还不够好,当有新的认识新的理解后还会随时来更新.读完本文,下面几个问题便可理解清楚. 1.进程是什么? 2.为什么要有进程这个概念? ...
- Codeforces Round #322 (Div. 2) D. Three Logos 暴力
D. Three Logos Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/581/problem ...
- [MODx] 5. WayFinder
1. Install the wayFinder package 2. Select the resource which you want to show: The 'published' reso ...
- 开源PaaS产品介绍
简介 本文主要介绍一下PaaS领域两个著名的开源软件: Cloud Foundry和OpenShift. [广告]如果你喜欢本博客,请点此查看本博客所有文章:http://www.cnblogs.co ...
- 初学Node.js第一天
最近开始下班到家不知道该做啥,因为水平太菜,要学的东西实在太多,反而陷入了不知道该学什么的困境,结果天天就是看别人的博客,看到什么标题比较感兴趣就点进去,没有一个目标. 今天突然兴起,决定要捣鼓捣鼓N ...
- java_IO读写模版
InputStream in = null; OutputStream out = null; try{ in = new FileInputStream(); int len=0; byte buf ...