最新的CocoaPods 安装及使用
当在开发iOS应用时,会经常使用到很多的第三方开源类库,一般的方法是直接从GitHub下载,然后拖到项目中使用,如果该开源类库不依赖其他的类库,就可以直接使用;如果该开源类库还依赖一些其他的类库,则需要我们手动导入并配置,显得十分麻烦。此时第三方开源类库管理工具CocoaPods就显得十分重要了。接下来,就带大家看看CocoaPods的安装及使用:
一、下载和安装CocoaPods(使用终端)
在安装CocoaPods之前,首先要在本地安装好Ruby环境,默认情况下,Mac自带Ruby环境。因为Ruby的默认源rubygems.org使用的是亚马逊的云服务,在国内使用会被墙,所以需要更换一下Ruby的源,将其更换为国内淘宝的源。
1.移除现有Ruby默认源
$gem sources --remove https://rubygems.org/
2.使用新的源
$gem sources -a https://gems.ruby-china.org
这部分内容可以访问RubyGems镜像网站
3.验证新源是否替换成功
$gem sources -l
新源替换成功如下图:

4.安装CocoaPods(分Mac系统进行)
(1)Mac系统:OS X EL Capitan(2015年9月29号发布)及之后
<1>$sudo gem install -n /usr/local/bin cocoapods
<2>$pod setup
(2)Mac系统:OS X 10.10 Yosemite(2014年6月3号发布)及之前
<1>$sudo gem install cocoapods
<2>$pod setup
注意:输入pod setup之后可能会一直卡顿在Setting up CocoaPods master
repo处,原因是CocoaPods版本升级到1.0.1版本后,其文件有800多兆大,需要慢慢下载。为了查看安装进度,可以另开启一个终端
(1)输入cd ~/.cocoapods;
(2)进入.cocoapods之后,输入du –sh查看已下载文件的大小。
5.更新gem
$sudo gem update --system
备注:在输入上面的命令后需要输入密码(Mac电脑的开机密码),直接输入就好,上面的光标不会变化,输入完成后直接确定即可。
更新完成后显示如下图所示:

二、CocoaPods的使用
1.测试CocoaPods的功能
当上面的步骤都做完,需要查看一下CocoaPods是否安装成功(一般会安装成功,不过也不排除一些意外),这时只需在终端输入pod search +开源类库的名字(pod search AFNetworking)回车即可。
如果安装成功则如下图所示,会显示出相关的所有第三方开源类库。

如果安装失败,点击回车后会报一行红色错误,一般遇到这种情况最笨的办法就是重新安装。
2.简单实用CocoaPods(以一个例子来说明)
(1)在桌面上创建一个工程Demo(以Xcode7.3.1创建)。它的文件构成如下:

(2)在这个工程中创建一个Podfile文件(注意:名字必须是Podfile)
<1>使用终端创建Podfile文件
a.使用终端找到当前这个工程文件夹
$cd Desktop/Demo
b.创建空白的Podfile文件
$touch Podfile
<2>使用高级记事本(如:Sublime Text 2)创建Podfile文件
创建一个空白文件并保存,文件名为Podfile(后面不跟任何字符)
此时的文件结构如下:

(3)在Podfile文件中写入要使用的第三方框架,这里以AFNetworking为例。打开终端,输入pod search AFNetworking回车,如下图所示,里面显示了AFNetworking这个开源类库的一些基本信息。

打开工程文件夹,选择Podfile文件,右击选择文本编辑或者高级记事本打开。
<1>CocoaPods版本为1.0.1之前
只需要将Podfile文件中书写的那句复制并粘贴到Podfile文件中即可
<2>CocoaPods版本为1.0.1及之后书写如下图所示:

解释:
第一行:platform:ios, '8.0' ----->开源类库支持的项目最低系统版本;
第二行和第四行:这是CocoaPods升级1.0.1版本后新增的,单引号中间填写项目工程名,其书写时固定格式,两行中间是开源类库的配置信息;
第三行:这行信息是告诉CocoaPods去下载AFNetworking类库和它的3. 1.0版本,是一条配置信息。
(4)将开源类库导入工程中
<1>使用终端找到当前这个工程文件夹
$cd Desktop/Demo
<2>安装第三方开源类库(跟新类库可使用$pod update)
$pod install
安装完成如下图所示

注意:上面绿色的两行内容意思是说:请关闭任何当前Xcode会话和使用的演示,从现在起使用“Demo.xcworkspace”这个项目。
这时再次打开项目文件就会发现多了三个文件,如下图所示:

此时按照提示双击Demo.xcworkspace这个文件(不再使用Demo.xcodeproj文件)打开项目,观察右侧导航面板有两个工程,第一个Demo工程是我们正常的开发工程,第二个Pods工程是开源类库依赖工程(使用CocoaPods导入的第三方开源类库都在这里面),如下图所示:

它的文件结构还是很明显的,我们需要特别注意的是AFNetworking已经在项目中了,并且测试是可以使用的(笔者使用Xcode7.3.1开发测试的,鉴于这个版本的提示比较坑,所以在使用时使用<>导入时有提示,但使用””导入时没有提示,不过此时使用何种导入方式都可以,都可以使用AFNetworking类库了,建议使用””导入)。
(5)总结CocoaPods的使用
<1>在终端搜索相应的开源类库,命令为:$pod search +开源类库;
<2>打开Podfile文件,修改其中的信息;
<3>安装(更新)即可,命令为:$pod install(或$pod update)。
3.使用CocoaPods的注意点
(1)从现在起,我们只需要使用后缀名为.xcworkspace的文件来开发;
(2)第三方类库会被编译成静态库供我们的工程使用,我们可以打开查看源码,但是不能做任何修改;
(3)笔者在此演示的是一个第三方开源类库的导入,其实多个第三方开源类库的导入是同样的操作,Podfile文件中的书写如下图所示:

(4)使用CocoaPods删除不用的类库
前面给大家演示了使用CocoaPods如何导入类库,如果不想使用其中某个类库怎么办呢?其实很简单,只要在Podfile文件中将不想用的类库的配置信息删除,并且在终端执行一次pod update命令即可,重新打开就会发现对应的类库已经被移除了。
(5)第三方开源类库版本号的各种写法与含义
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的版本,写这个限制和什么都不写是一个效果,都表示使用最新版本
(6)每次更改了Podfile文件后都需要执行一次$pod
update命令(此时如果新添加了类库,CocoaPods会下载新添加的类库,并且更新有新版本的类库)。
(7)CocoaPods的重新安装或者版本更新
这个有点繁琐,必须先卸载原先的CocoaPods,然后重新执行安装命令即可。其卸载命令为:
$ sudo gem uninstall CocoaPods
4.使用CocoaPods导入头文件的常见问题及解决办法
(1)CocoaPods找不到头文件
问题描述:使用CocoaPods时,import找不到头文件。
问题原因:这是因为还没设置头文件的目录。
解决办法:在项目的Target的里设置一下,添加CocoaPods头文件目录:目录路径直接写:${SRCROOT},后边选择recursive(会在相应的目录递归搜索文件) ,就可以了。
注意:是在User Header Search Paths里添加,不是上面的Header Search Paths.
如下图:

(2)CocoaPods导入头文件不提示
问题描述:使用CocoaPods时,import导入头文件时,不提示文件名。
问题原因:这是因为还没设置头文件的目录。
解决办法:在项目的Target的里设置一下,添加CocoaPods头文件目录:目录路径直接写:$(PODS_ROOT),后边选择recursive (会在相应的目录递归搜索文件),就可以了。
注意:是在User Header Search Paths里添加,不是上面的Header Search Paths.
如下图:

经过上面两步操作,接下来在类中导入相关类库时,只需要#import “” 即可,不使用#import <> 也可以;当然有些第三方库,必须使用#import <> 导入,例如:友盟分享的第三方库 <UShareUI/UShareUI.h> 就必须使用#import <UShareUI/UShareUI.h> 导入,使用#import “” 会出现无限递归,一直找不到对应类库的问题。
最新的CocoaPods 安装及使用的更多相关文章
- 最新的 cocoaPods 安装方法
经过努力终于发现了最新的 解决cocoaPods安装的办法: taobao Gems 源已停止维护,现由 ruby-china 提供镜像服务 第一步:安装rvm, 不管需不需要升级ruby,rvm可以 ...
- 最新的 cocoapods 安装与使用(2016.11)
cocoapods简介: cocoapods 是iOS的类库管理工具,可以让开发者很方便集成各种第三方库,而不用去网站上一个个下载,再一个个文件夹的拖进项目中,还得添加相关的系统依赖库.只需要安装好c ...
- 最新的 cocoapods 安装与使用(2019.04)
cocoapods简介: cocoapods 是iOS的类库管理工具,可以让开发者很方便集成各种第三方库,而不用去网站上一个个下载,再一个个文件夹的拖进项目中,还得添加相关的系统依赖库.只需要安装好c ...
- 2017 最新的 cocoaPods 安装方法
经过努力终于发现了最新的 解决cocoaPods安装的办法: taobao Gems 源已停止维护,现由 ruby-china 提供镜像服务 第一步:安装rvm, 不管需不需要升级ruby,rvm可以 ...
- Ruby升级的最新方法/CocoaPods安装
今天安装cocoapods时候出现了下面的提示 Error installing pods:active support requires Ruby version >= 2.2.0//这个需求 ...
- 2016最新cocoapods安装流程,安装过程中遇到的问题及解决方法
现在的cocoapods与之前比较.有很多不一样的地方.自己试了一试,终于搞定.现在大概纪录一下. 1.首先查看ruby是否是最新版的. ruby是通过rvm安装的所以需要先安装rvm后查看ruby是 ...
- 2016最新CocoaPods安装和错误解决 + 自己的经验
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Times; color: #333333; background-color: #fffff ...
- 最新cocoapods安装流程,安装过程中遇到的问题及解决方法
最近重新安装了一次cocoapods,参考的安装流程:http://blog.csdn.net/showhilllee/article/details/38398119/ 但是现在的cocoapods ...
- 2016最新CocoaPods安装与使用
前言 是不是已经厌烦了将各种库拖拽到Xcode项目中?那么,CocoaPods的出现就帮你解决了这一问题.CocoaPods是Objective-C项目中最有名的类库管理工具,可以解决库与库之间的依赖 ...
随机推荐
- Python高级编程和异步IO并发编程
第1章 课程简介介绍如何配置系统的开发环境以及如何加入github私人仓库获取最新源码. 1-1 导学 试看 1-2 开发环境配置 1-3 资源获取方式第2章 python中一切皆对象本章节首先对比静 ...
- standard cell timing model
standard cell timing model 主要包括两方面的信息: Cell Delay calculation Output Transition calculation 首先,cel ...
- http协议中的keeplive是做什么的?它的适应场景是什么?
1.Http底层也是通过TCP传输的. 2.HTTP keep-alive Http是一个”请求-响应”协议,它的keep-alive主要是为了让多个http请求共享一个Tcp连接,以避免每个Http ...
- 404 Note Found 队-Beta1
目录 组员情况 组员1(组长):胡绪佩 组员3:庄卉 组员4:家灿 组员5:凯琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示组内最新成果 团 ...
- Mac OS X 命令行用户应当知道的八个终端工具
原文链接:Eight Terminal Utilities Every OS X Command Line User Should Know OS X 的Terminal 终端开辟了强大的UNIX实 ...
- Object C学习笔记12-集合
这里讲到的集合是指Set集合,其实Array也是一种类型的集合.在Object C中提供了两个集合类NSSet和NSMutableSet.其实NSSet和NSArray性质一样,都是用于存储对象的. ...
- iview的Affix插件遇到滚动时候的bug处理方法
最近有个需求,是用vue做的页面,其中嵌入了一个tinymce编辑器,编辑器设置了自动调整高度,也就是说编辑器中内容越多,高度就会自动撑高 我们需要再页面最下方放一个保存按钮,保存按钮必须固定在屏幕下 ...
- 在hue平台上使用oozie工作流调度
在实习期间,公司使用的hue平台做的数仓,下面就简单介绍一下hue的一些使用的注意事项,主要是工作流的使用和调度 进入hue首页: Workflow是工作流,Schedule是调度工作流的,如设置工作 ...
- 20155237 2016-2017-2 《Java程序设计》第3周学习总结
20155237 2016-2017-2 <Java程序设计>第3周学习总结 教材学习内容总结 第四章 认识对象 对象:存在的具体实体,具有明确的状态和行为. 类:具有相同属性和行为的一组 ...
- 不能存在多个@ManyToMany(fetch=FetchType.EAGER)
@LazyCollection(LazyCollectionOption.FALSE) 原地址:https://stackoverflow.com/questions/4334970/hibernat ...