当在开发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://ruby.taobao.org/  

 3.验证新源是否替换成功

 $gem sources -l

新源替换成功如下图:

 4.安装CocoaPods(分Mac系统进行)

(1)Mac系统:OS X EL Capitan(2015年9月29号发布)及之后

$sudo gem install -n  /usr/local/bin cocoapods

$pod setup

(2)Mac系统:OS X 10.10 Yosemite(2014年6月3号发布)及之前

$sudo gem install cocoa pods

$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。它的文件构成如下:

(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.

如下图:

iOS 最新版 CocoaPods 的安装使用的更多相关文章

  1. iOS 最新版 CocoaPods 的安装流程

    iOS 最新版 CocoaPods 的安装流程1.移除现有Ruby默认源$gem sources --remove https://rubygems.org/2.使用新的源$gem sources - ...

  2. 最新版 CocoaPods 的安装流程

                                       iOS 最新版 CocoaPods 的安装流程     1.移除现有Ruby默认源 $gem sources --remove h ...

  3. iOS开发之CocoaPods的安装与使用

    前言部分 iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods) 可以用来方便的统一管理这些第三方库. 一.安装 由 ...

  4. ios专题 - CocoaPods - 安装

    职业走得很累,停下来,温故技术.顺便开始我得ios博客文章. [原创]http://www.cnblogs.com/luoguoqiang1985 安装 第一步:执行以下命令 sudo gem ins ...

  5. 最新版 CocoaPods 的安装流程(包括EI Capitan版)

    1.移除现有Ruby默认源 $gem sources --remove https://rubygems.org/ 2.使用新的源 $gem sources -a https://ruby.taoba ...

  6. 最新版CocoaPods的安装和使用以及版本升级遇到的问题

    CocoaPods的下载及安装 mac系统已经默认安装好Ruby环境,如果你不确定自己系统中是否有Ruby的,可以在终端中输入命令行:ruby -v查看当前ruby版本.如图:  确定以后,接下来就可 ...

  7. 最新版CocoaPods的安装流程

    1.移除现有Ruby默认源 $gem sources --remove https://rubygems.org/ 2.使用新的源 $gem sources -a https://ruby.taoba ...

  8. CocoaPods的安装[转载]

    [转载] 原地址http://www.tuicool.com/articles/7VvuAr3 觉得很好,很有用 iOS 最新版 CocoaPods 的安装流程 1.移除现有Ruby默认源 $gem ...

  9. iOS开发学习-cocoapods的配置安装

    安装coacoapods步骤: 在终端输入如下命令,升级ruby版本: sudo gem update —system 出现这个,标志着安装成功. 完成之后,再输入如下命令: gem sources ...

随机推荐

  1. HDU 4278 Faulty Odometer 8进制转10进制

    Faulty Odometer Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?p ...

  2. bzoj 1026 [SCOI2009]windy数 数位dp

    1026: [SCOI2009]windy数 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline ...

  3. 微信公共服务平台开发(.Net 的实现)13-------网页授权(下 :C#代码的实现 )

    接着上次的理论,我们这次来研究用代码实现“网页授权获取用户基本信息”,首先我们需要一个链接指向微信的授权页面,在微信开发平台中已经说了,这个链接必须在微信客户端中打开,那么我们就干脆使用文本消息来完成 ...

  4. Game: Map Design Considerations 游戏地图设计指南

    依据前文伏击战场景手稿, 用Tile Studio "草草"制作出该场景的地图: 生成的C源码: #ifndef _open_war_1Gfx_c #define _open_wa ...

  5. Golang学习 - bufio 包

    ------------------------------------------------------------ // bufio 包实现了带缓存的 I/O 操作 -------------- ...

  6. IOS 开发过程中的 消息通知 小红点

    大致分为两种方法:系统方法和自定义方法 系统方法: 系统自带的方法可以显示具体的消息数量,这个就是苹果设备常见的小红点.实现思路如下: NSArray *tabBarItems = self.navi ...

  7. javass 视频笔记二 (关键字,标示符,常量变量,运算符和if-else)

    1,java的关键字和标识符2,java的基本数据类型3,变量和常量4,java的运算符5,if-else if - else表达式1,java的关键字和标识符      1.1,所有关键字都要小写 ...

  8. wamp修改多站点配置

    本文介绍如果在wamp中修改配置支持多站点. 第1步,修改httpd.conf,增加8080端口的监听 #Listen 12.34.56.78:80Listen 80Listen 8080 第2步,修 ...

  9. JPasswordField 中得到的字符数组转化为字符串(密码乱码问题)

    转载自:http://blog.csdn.net/skl_tz/article/details/9009805 JPasswordField 用作密码的输入框,似乎很方便,但是,为了得到输入的内容,一 ...

  10. 来TN公司两周的记录

    刚好上两周班,现在记录一下吧. 第一周:全部是培训,关于系统的架构.BOSS.NGBOSS.编码规范.开发规范.项目文档等.听了之后对公司的技术还是有一定的了解.至少知道公司不只一个web站. 第二周 ...