CocoaPods 的概述 安装和基本用法
2014-11-13 09:58
375 查看
CocoaPods 的概述 安装和基本用法
每种语言发展到一个阶段,就会出现相应的依赖管理工具,或者是中央代码仓库。比如
Java: maven,Ivy
Ruby: gems
Python: pip, easy_install
Nodejs: npm
随着iOS开发者的增多,业界也出现了为iOS程序提供依赖管理的工具,这个工具叫:CocoaPods。
CocoaPods简介
CocoaPods是一个负责管理iOS项目中第三方开源代码的工具。CocoaPods项目的源码在Github上管理。该项目开始于2011年8月12日,经过一年多的发展,现在已经超过1000次提交,并且持续保持活跃更新。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间拿我之前开发的朗月中国iPhone客户端为例,其使用了14个第三方开源库。在没有使用CocoaPods以前,我需要:
把这些第三方开源库的相关文件复制到项目中,或者设置成git的submodule,然后这些开源库通常需要依赖系统的一些framework,我需要手工地将这些framework一一增加到项目依赖中,比如ASI网络库就需要增加以下framework:
CFNetwork, SystemConfiguration, MobileCoreServices, CoreGraphics and zlib。
对于RegexKitLite这个正则表达式库,我还需要设置-licucore的编译参数
手工管理这些依赖包的更新。
这些体力活虽然简单,但毫无技术含量并且浪费时间。在使用CocoaPods之后,我只需要将用到的第三方开源库放到一个名为Podfile的文件中,然后执行pod install。CocoaPods就会自动将这些第三方开源库的源码下载下来,并且为我的工程设置好相应的系统依赖和编译参数。
CocoaPods的安装和使用介绍
安装方式异常简单, Mac下都自带ruby环境,使用直接使用ruby的gem命令即可下载安装:
这里我介绍2种方法:
第一种(最简单的,但不通用,看人品)
终端输入命令行 sudo
gem install cocoapods,然后大概过个10秒钟左右,如果你的终端出现下面变化,说明的人品还可以, 发现半天没有任何反应因为那堵墙阻挡了cocoapods.org。
然后终端会自动跳出 下面界面 ,让你输入你的电脑密码:(如果你电脑没有设置密码,那最好设置一个,因为这里我测试了一下,没有密码的时候,终端是不往下走的)
当你输入密码的时候不会显示在终端上 ,你只需要输入即可,输入完成以后,点击 enter 键,继续运行终端
如果你人品真的不行,输入上面的 终端命令行 sudo gem install cocoapods 没有反应的时候 ,那你只有用下面这个方法了;
方法二:我们可以用淘宝的Ruby镜像来访问cocoapods。按照下面的顺序在终端中敲入依次敲入命令:
$ gem sources --remove https://rubygems.org/
//等有反应之后再敲入以下命令
$ gem sources -a http://ruby.taobao.org/
为了验证你的Ruby镜像是并且仅是taobao,可以用以下命令查看:
$ gem sources -l
只有在终端中出现下面文字才表明你上面的命令是成功的:
*** CURRENT SOURCES ***
http://ruby.taobao.org/
上面所有的命令完成之时,在我的终端上是这个的样子:
这时候,你再次在终端中运行:
$ sudo gem install cocoapods
等上十几秒钟,CocoaPods就可以在你本地下载并且安装好了,不再需要其他设置。然后终端会出现方法一里面的终端变化
如何使用CocoaPods?
好了,安装好CocoPods之后,接下来就是使用它。所幸,使用CocoPods和安装它一样简单,也是通过一两行命令就可以搞定。
场景1:利用CocoaPods,在项目中导入AFNetworking类库
AFNetworking类库在GitHub地址是:https://github.com/AFNetworking/AFNetworking
为了确定AFNetworking是否支持CocoaPods,可以用CocoaPods的搜索功能验证一下。在终端中输入:
$pod search AFNetworking(这里 “AFNetworking”
不区分大小写,都可以)
过几秒钟之后,你会在终端中看到关于AFNetworking类库的一些信息。比如:
这说明,AFNetworking是支持CocoaPods,所以我们可以利用CocoaPods将AFNetworking导入你的项目中。
而且,我们可以看到AFNetworking 的所有本版,以及它的 变种或者升级版本,以及各自在github 上的下载地址,是不是很方便!!
首先,我们需要在我们的项目中加入CocoaPods的支持。你可以跟随小编的步骤,先利用Xcode创建一个名字CocoaPodsDemo的项目,用于以下的教程。创建好之后,在继续下一步之前,小编先截图,看看项目没有支持CocoaPods时的项目Xcode目录结构:
上图等一下要跟项目支持CocoaPods之后的项目Xcode目录结构做对比。
你看到这里也许会问,CocoaPods为什么能下载AFNetworking呢,而不是下载其他类库呢?这个问题的答案是,有个文件来控制CocoaPods该下载什么。这个文件就叫做“Podfile”(注意,一定得是这个文件名,而且没有后缀)。你创建一个Podfile文件,然后在里面添加你需要下载的类库,也就是告诉CocoaPods,“某某和某某和某某某,快到碗里来!”。每个项目只需要一个Podfile文件。
好吧,废话少说,我们先创建这个神奇的PodFile。在终端中进入(cd命令)你项目所在目录,然后在当前目录下,利用vim创建Podfile,运行:
$ vim Podfile
然后在Podfile文件中输入以下文字:
platform :ios, '7.0'
pod "AFNetworking", "~> 2.0"
注意,这段文字不是小编凭空生成的,可以在AFNetworking的github页面找到。这两句文字的意思是,AFNetworking支持iOS
7.0, 要下载的AFNetworking版本是2.0,这里你可以根据自己最新的需求下载不同的版本。
恩住 esc 键推出编辑模式
然后保存退出。vim环境下,保存退出命令是:
:wq
这时候,你会发现你的项目目录中,出现一个名字为Podfile的文件,而且文件内容就是你刚刚输入的内容。注意,Podfile文件应该和你的工程文件.xcodeproj在同一个目录下。
这时候,你就可以利用CocoPods下载AFNetworking类库了。还是在终端中的当前项目目录下,运行以下命令:
$ pod install
因为是在你的项目中导入AFNetworking,这就是为什么这个命令需要你进入你的项目所在目录中运行。
运行上述命令之后,小编的终端出现以下信息:
[!] From now on use `CocoaPodsDemo.xcworkspace`.
注意最后一句话,意思是:以后打开项目就用 CocoaPodsDemo.xcworkspace打开,而不是之前的.xcodeproj文件。
你也许会郁闷,为什么会出现.xcodeproj文件呢。这正是你刚刚运行pod install命令产生的新文件。除了这个文件,你会发现还多了另外一个文件“Podfile.lock”和一个文件夹“Pods”。点击
CocoaPodsDemo.xcworkspace 打开之后工程之后,项目Xcode目录结构如下图:
你会惊喜地发现,AFNetwoking已经成功导入项目了(红框部分)!
现在,你就可以开始使用AFNetworking.h啦。可以稍微测试一下,在你的项目任意代码文件中输入:
#import <AFNetworking.h> (注意这种头文件在第一次使用的时候xcode是不会主动提示的)
或者
#import "AFNetworking.h"
然后编译,看看是否出错。如果你严格按照小编上述的步骤来,是不可能出错的啦。
至此,CocoPods的第一个应用场景讲述完毕。别看小编写了这么多,其实过程是十分简单的。总结一下就是:
先在项目中创建Podfile,Podfile的内容是你想导入的类库。一般类库的原作者会告诉你导入该类库应该如何写Podfile;
运行命令:pod install
下面,小编继续讲述第二种使用场景
场景2:如何正确编译运行一个包含CocoPods类库的项目
你也许曾经遇到过这种情况,好不容易在GitHub上找到一份代码符合自己想需求,兴冲冲下载下来,一编译,傻眼了,发现有各种各样错误。一看,原来是缺失了各种其他第三方类库。这时候莫慌,你再仔细一看,会发现你下载的代码包含了Podfile。没错,这意味着你可以用CocoaPods很方便下载所需要的类库。
解决方法:打开终端 cd 到你的工程 终端输入该命令行
$ pod update
然后 在终端再次输入命令行
$ pod
install
将缺少的第三方库名字,写入到podfile 文件中,格式需要和我们上面讲的一样
最后,打开工作区间,不要去打开xcode工程, 这样就可以运行项目了
每种语言发展到一个阶段,就会出现相应的依赖管理工具,或者是中央代码仓库。比如
Java: maven,Ivy
Ruby: gems
Python: pip, easy_install
Nodejs: npm
随着iOS开发者的增多,业界也出现了为iOS程序提供依赖管理的工具,这个工具叫:CocoaPods。
CocoaPods简介
CocoaPods是一个负责管理iOS项目中第三方开源代码的工具。CocoaPods项目的源码在Github上管理。该项目开始于2011年8月12日,经过一年多的发展,现在已经超过1000次提交,并且持续保持活跃更新。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间拿我之前开发的朗月中国iPhone客户端为例,其使用了14个第三方开源库。在没有使用CocoaPods以前,我需要:
把这些第三方开源库的相关文件复制到项目中,或者设置成git的submodule,然后这些开源库通常需要依赖系统的一些framework,我需要手工地将这些framework一一增加到项目依赖中,比如ASI网络库就需要增加以下framework:
CFNetwork, SystemConfiguration, MobileCoreServices, CoreGraphics and zlib。
对于RegexKitLite这个正则表达式库,我还需要设置-licucore的编译参数
手工管理这些依赖包的更新。
这些体力活虽然简单,但毫无技术含量并且浪费时间。在使用CocoaPods之后,我只需要将用到的第三方开源库放到一个名为Podfile的文件中,然后执行pod install。CocoaPods就会自动将这些第三方开源库的源码下载下来,并且为我的工程设置好相应的系统依赖和编译参数。
CocoaPods的安装和使用介绍
安装方式异常简单, Mac下都自带ruby环境,使用直接使用ruby的gem命令即可下载安装:
这里我介绍2种方法:
第一种(最简单的,但不通用,看人品)
终端输入命令行 sudo
gem install cocoapods,然后大概过个10秒钟左右,如果你的终端出现下面变化,说明的人品还可以, 发现半天没有任何反应因为那堵墙阻挡了cocoapods.org。
然后终端会自动跳出 下面界面 ,让你输入你的电脑密码:(如果你电脑没有设置密码,那最好设置一个,因为这里我测试了一下,没有密码的时候,终端是不往下走的)
当你输入密码的时候不会显示在终端上 ,你只需要输入即可,输入完成以后,点击 enter 键,继续运行终端
如果你人品真的不行,输入上面的 终端命令行 sudo gem install cocoapods 没有反应的时候 ,那你只有用下面这个方法了;
方法二:我们可以用淘宝的Ruby镜像来访问cocoapods。按照下面的顺序在终端中敲入依次敲入命令:
$ gem sources --remove https://rubygems.org/
//等有反应之后再敲入以下命令
$ gem sources -a http://ruby.taobao.org/
为了验证你的Ruby镜像是并且仅是taobao,可以用以下命令查看:
$ gem sources -l
只有在终端中出现下面文字才表明你上面的命令是成功的:
*** CURRENT SOURCES ***
http://ruby.taobao.org/
上面所有的命令完成之时,在我的终端上是这个的样子:
这时候,你再次在终端中运行:
$ sudo gem install cocoapods
等上十几秒钟,CocoaPods就可以在你本地下载并且安装好了,不再需要其他设置。然后终端会出现方法一里面的终端变化
如何使用CocoaPods?
好了,安装好CocoPods之后,接下来就是使用它。所幸,使用CocoPods和安装它一样简单,也是通过一两行命令就可以搞定。
场景1:利用CocoaPods,在项目中导入AFNetworking类库
AFNetworking类库在GitHub地址是:https://github.com/AFNetworking/AFNetworking
为了确定AFNetworking是否支持CocoaPods,可以用CocoaPods的搜索功能验证一下。在终端中输入:
$pod search AFNetworking(这里 “AFNetworking”
不区分大小写,都可以)
过几秒钟之后,你会在终端中看到关于AFNetworking类库的一些信息。比如:
这说明,AFNetworking是支持CocoaPods,所以我们可以利用CocoaPods将AFNetworking导入你的项目中。
而且,我们可以看到AFNetworking 的所有本版,以及它的 变种或者升级版本,以及各自在github 上的下载地址,是不是很方便!!
首先,我们需要在我们的项目中加入CocoaPods的支持。你可以跟随小编的步骤,先利用Xcode创建一个名字CocoaPodsDemo的项目,用于以下的教程。创建好之后,在继续下一步之前,小编先截图,看看项目没有支持CocoaPods时的项目Xcode目录结构:
上图等一下要跟项目支持CocoaPods之后的项目Xcode目录结构做对比。
你看到这里也许会问,CocoaPods为什么能下载AFNetworking呢,而不是下载其他类库呢?这个问题的答案是,有个文件来控制CocoaPods该下载什么。这个文件就叫做“Podfile”(注意,一定得是这个文件名,而且没有后缀)。你创建一个Podfile文件,然后在里面添加你需要下载的类库,也就是告诉CocoaPods,“某某和某某和某某某,快到碗里来!”。每个项目只需要一个Podfile文件。
好吧,废话少说,我们先创建这个神奇的PodFile。在终端中进入(cd命令)你项目所在目录,然后在当前目录下,利用vim创建Podfile,运行:
$ vim Podfile
然后在Podfile文件中输入以下文字:
platform :ios, '7.0'
pod "AFNetworking", "~> 2.0"
注意,这段文字不是小编凭空生成的,可以在AFNetworking的github页面找到。这两句文字的意思是,AFNetworking支持iOS
7.0, 要下载的AFNetworking版本是2.0,这里你可以根据自己最新的需求下载不同的版本。
恩住 esc 键推出编辑模式
然后保存退出。vim环境下,保存退出命令是:
:wq
这时候,你会发现你的项目目录中,出现一个名字为Podfile的文件,而且文件内容就是你刚刚输入的内容。注意,Podfile文件应该和你的工程文件.xcodeproj在同一个目录下。
这时候,你就可以利用CocoPods下载AFNetworking类库了。还是在终端中的当前项目目录下,运行以下命令:
$ pod install
因为是在你的项目中导入AFNetworking,这就是为什么这个命令需要你进入你的项目所在目录中运行。
运行上述命令之后,小编的终端出现以下信息:
[!] From now on use `CocoaPodsDemo.xcworkspace`.
注意最后一句话,意思是:以后打开项目就用 CocoaPodsDemo.xcworkspace打开,而不是之前的.xcodeproj文件。
你也许会郁闷,为什么会出现.xcodeproj文件呢。这正是你刚刚运行pod install命令产生的新文件。除了这个文件,你会发现还多了另外一个文件“Podfile.lock”和一个文件夹“Pods”。点击
CocoaPodsDemo.xcworkspace 打开之后工程之后,项目Xcode目录结构如下图:
你会惊喜地发现,AFNetwoking已经成功导入项目了(红框部分)!
现在,你就可以开始使用AFNetworking.h啦。可以稍微测试一下,在你的项目任意代码文件中输入:
#import <AFNetworking.h> (注意这种头文件在第一次使用的时候xcode是不会主动提示的)
或者
#import "AFNetworking.h"
然后编译,看看是否出错。如果你严格按照小编上述的步骤来,是不可能出错的啦。
至此,CocoPods的第一个应用场景讲述完毕。别看小编写了这么多,其实过程是十分简单的。总结一下就是:
先在项目中创建Podfile,Podfile的内容是你想导入的类库。一般类库的原作者会告诉你导入该类库应该如何写Podfile;
运行命令:pod install
下面,小编继续讲述第二种使用场景
场景2:如何正确编译运行一个包含CocoPods类库的项目
你也许曾经遇到过这种情况,好不容易在GitHub上找到一份代码符合自己想需求,兴冲冲下载下来,一编译,傻眼了,发现有各种各样错误。一看,原来是缺失了各种其他第三方类库。这时候莫慌,你再仔细一看,会发现你下载的代码包含了Podfile。没错,这意味着你可以用CocoaPods很方便下载所需要的类库。
解决方法:打开终端 cd 到你的工程 终端输入该命令行
$ pod update
然后 在终端再次输入命令行
$ pod
install
将缺少的第三方库名字,写入到podfile 文件中,格式需要和我们上面讲的一样
最后,打开工作区间,不要去打开xcode工程, 这样就可以运行项目了
相关文章推荐
- CocoaPods的基本安装和使用方法
- [cocoapods速成] cocoapods的基本用法和自制 podspec
- 【CocoaPods】CocoaPods基本安装教程
- iOS开发: cocoapods的安装与使用
- ios专题 - CocoaPods - 安装
- JAVA Map概述及基本用法
- OBJC依赖库管理利器cocoapods 安装及使用详细图解
- 2016 cocoapods的安装和使用方法以及版本升级遇到的问题
- OgreXMLConverter,CeguiMeshViewer,CELayoutEditor 0.6的安装后基本用法
- 安装cocoapods
- OBJC依赖库管理利器cocoapods 安装及使用详细图解
- cocoapods的安装和使用
- CVS2.5.03版本的安装与配置及基本用法
- Ubuntu下VIM的安装和基本用法
- CocoaPods的安装和使用介绍
- OBJC依赖库管理利器cocoapods 安装及使用详细图解
- 详解2016 cocoapods的安装和使用以及版本升级遇到的问题
- mysql++的安装和基本用法
- MySql的基本用法(1)_绿色版安装配置
- OBJC依赖库管理利器cocoapods 安装及使用详细图解