IOS CocoaPods详细使用方法

一、什么是CocoaPods

1、为什么需要CocoaPods
在进行iOS开发的时候,总免不了使用第三方的开源库,比如SBJson、AFNetworking、Reachability等等。使用这些库的时候通常需要:

下载开源库的源代码并引入工程
向工程中添加开源库使用到的framework
解决开源库和开源库以及开源库和工程之间的依赖关系、检查重复添加的framework等问题
如果开源库有更新的时候,还需要将工程中使用的开源库删除,重新执行前面的三个步骤,顿时头都大了。。。
自从有了CocoaPods以后,这些繁杂的工作就不再需要我们亲力亲为了,只需要我们做好少量的配置工作,CocoaPods会为我们做好一切!

2、什么是CocoaPods
CocoaPods是一个用来帮助我们管理第三方依赖库的工具。它可以解决库与库之间的依赖关系,下载库的源代码,同时通过创建一个Xcode的workspace来将这些第三方库和我们的工程连接起来,供我们开发使用。

使用CocoaPods的目的是让我们能自动化的、集中的、直观的管理第三方开源库。

二、安装CocoaPods

1、安装
CocoaPods是用Ruby实现的,要想使用它首先需要有Ruby的环境。幸运的是OS X系统默认的已经可以运行Ruby了,因此我们只需要执行以下命令:

$ sudo gem install cocoapods 

CocoaPods是以Ruby gem包的形式被安装的。在安装执行的过程中,可能会问我们是不是更新rake,输入y即可。这是因为rake gem包会在安装的过程中检查更细,如果有可用的新版本就会出现刚才的选项。
在安装进程结束的时候,执行命令:

$ pod setup

如果没有报错,就说明一切安装就成功了!
2、安装过程中可能遇到的问题
①执行完install命令半天没反应
这有可能是因为Ruby的默认源使用的是cocoapods.org,国内访问这个网址有时候会有问题,网上的一种解决方案是将远替换成淘宝的,替换方式如下:

$ gem sources --remove https://rubygems.org/
//等有反应之后再敲入以下命令
$ gem sources -a http://ruby.taobao.org/ 

要想验证是否替换成功了,可以执行:

$ gem sources -l 

正常的输出是:

*** CURRENT SOURCES *** 

http://ruby.taobao.org/ 

②gem版本过老
gem是管理Ruby库和程序的标准包,如果它的版本过低也可能导致安装失败,解决方案自然是升级gem,执行下述命令即可:

$ sudo gem update --system 

③安装完成后,执行pod setup命令时报错:

/Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:298:in `to_specs': Could not find 'cocoapods' (>= 0) among 6 total gem(s) (Gem::LoadError)
	from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:309:in `to_spec'
	from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_gem.rb:53:in `gem'
	from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/bin/pod:22:in `<main>'

这就是路径设置的问题,可以通过执行:

$ rvm use ruby-1.9.3-p448 

解决该问题。
3、升级CocoaPods
升级很简单,再次执行安装命令即可:

$ sudo gem install cocoapods 

需要注意的是,如果安装的时候使用了sudo,升级的时候一样需要使用该关键字,不然升级完了以后又会出现路径不匹配问题。

三、使用CocoaPods
如果之前做的一切顺利,接下来就可以体验体验CocoaPods的神奇之处了,需要经过以下几步:

为了演示这个过程,我创建了一个名为CocoaPodsTest的工程。

1、创建Podfile
CocoaPods的一切都是从一个名为Podfile的文件开始的,我们需要先创建这个文件。个人习惯使用命令行,我会这样做:

$ cd /Users/wangzz/Desktop/CocoaPodsTest
$ touch Podfile

首先进入到工程的根目录下,创建空白的Podfile文件,创建完毕的目录结构如下图:

(PS:Podfile文件也可以不放在工程的根目录下,只是会稍微麻烦点,在下一篇文章中会有介绍,敬请关注。)

2、编辑Podfile
根据需要,我们可以在Podfile文件中写入需要用到的第三方库,以SBJson、AFNetworking、Reachability三个库为例,我的Podfile内容如下:

platform :ios
pod 'Reachability', '~> 3.0.0'
pod 'SBJson', '~> 4.0.0'

platform :ios, '7.0'
pod 'AFNetworking', '~> 2.0'

3、执行导入命令
准备工作都完成后,开始导入第三方库:

$ cd /Users/wangzz/Desktop/CocoaPodsTest
$ pod install

首先进入工程根目录,然后执行pod install命令,CocoaPods就开始为我们做下载源码、配置依赖关系、引入需要的framework等一些列工作,命令的执行结果打印出来如下:

Analyzing dependencies
Downloading dependencies
Installing AFNetworking (2.1.0)
Installing JSONKit (1.5pre)
Installing Reachability (3.0.0)
Generating Pods project
Integrating client project

[!] From now on use `CocoaPodsTest.xcworkspace`.

这就说明pod install命令执行成功了。再来看看工程根目录发生的变化,如下图:

可以看到,工程的根目录下多了三个东西:CocoaPodsTest.xcworkspace、Podfile.lock文件和Pods目录。

(PS:篇幅有限,Podfile.lock文件会放到系列文章的下一篇介绍,敬请关注。)

再看看刚才执行完pod install命令打印出来的内容的最后一行:

[!] From now on use `CocoaPodsTest.xcworkspace`.

提示我们从现在起,我们需要使用CocoaPodsTest.xcworkspace文件来开发。
对于工程发生的变化,有几点需要说明:

第三方库会被编译成静态库供我们正真的工程使用

CocoaPods会将所有的第三方库以target的方式组成一个名为Pods的工程,该工程就放在刚才新生成的Pods目录下。整个第三方库工程会生成一个名称为libPods.a的静态库提供给我们自己的CocoaPodsTest工程使用。

我们的工程和第三方库所在的工程会由一个新生成的workspace管理
为了方便我们直观的管理工程和第三方库,CocoaPodsTest工程和Pods工程会被以workspace的形式组织和管理,也就是我们刚才看到的CocoaPodsTest.xcworkspace文件。

原来的工程设置已经被更改了,这时候我们直接打开原来的工程文件去编译就会报错,只能使用新生成的workspace来进行项目管理。

打开CocoaPodsTest.xcworkspace,界面如下:

工程的目录结构还是非常明显的。

在项目中引用刚才添加的第三方库的头文件,执行编译操作,果断成功!
至此,CocoaPods使用篇告一段落,接下来打算再用一个篇幅介绍CocoaPods稍微深层次的东西,敬请关注。

四、参考资料

1、http://code4app.com/article/cocoapods-install-usage
2、http://cocoapods.org/

(0)

相关推荐

  • IOS开发之CocoaPods安装和使用教程

    这里只是简单写一下过程吧. 第一步:安装cocoapods sudo gem install cocoapods 要是不成功,执行以下操作 gem sources --remove https://rubygems.org/ gem sources -a http://ruby.taobao.org/ gem sources -l(用来查看是否成功) sudo gem install cocoapods 第二步:在项目中导入库 切到与工程目录相关的.xcodeproj同一目录下 vim Podf

  • IOS CocoaPods详解之进阶篇

    一.Podfile.lock文件 上文讲过,在开始使用CocoaPods,执行完pod install之后,会生成一个Podfile.lock文件.这个文件看起来跟我们关系不大,实际上绝对不应该忽略它. 该文件用于保存已经安装的Pods依赖库的版本,通过CocoaPods安装了SBJson.AFNetworking.Reachability三个POds依赖库以后对应的Podfile.lock文件内容为: PODS: - AFNetworking (2.1.0): - AFNetworking/N

  • 2016最新CocoaPods安装和错误解决方案

    CocoaPods是什么? CocoaPods是一个负责管理iOS项目中第三方开源库的工具.CocoaPods的项目源码在Github上管理.该项目开始于2011年8月12日,在这两年多的时间里,它持续保持活跃更新.开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间,在iOS开发中经常会用到第三方库如AFNetworking,ASIHttpRequest等,在使用第三方库时,你除了要导数源码外,但是,集成这些依赖库需要我们手动去配置,

  • IOS CocoaPods详解之制作篇

    学会使用别人的Pods依赖库以后,你一定对创建自己的依赖库跃跃欲试,今天就来揭开Pods依赖库创建过程的神秘面纱.整个创建过程都以我实现的一个名称为WZMarqueeView跑马灯效果的view为例,步骤如下: 一.创建自己的github仓库 CocoaPods都托管在github上(官方链接为:https://github.com/CocoaPods),所有的Pods依赖库也都依赖github,因此第一步我们需要创建一个属于自己的github仓库.仓库创建界面如下图: 上图中标了序号的共6处,

  • CocoaPods 出现LoadError - cannot load such file -- nanaimo错误解决办法

    CocoaPods 出现LoadError - cannot load such file -- nanaimo错误解决办法 如果经常使用 CocoaPods 进行个人类库的提交和更新,那么肯定会遇到这样的一个错误.如题:LoadError - cannot load such file -- nanaimo,翻译过来就是 LoadError - 无法加载此类文件 - nanaimo.该错误产生的时机一般是在验证 .podspec 文件的时候.具体的错误呈现形式是这样的: benpaobaode

  • 详解2016 cocoapods的安装和使用以及版本升级遇到的问题

    一.CocoaPods是什么? CocoaPods是一个负责管理iOS项目中第三方开源库的工具.CocoaPods的项目源码在Github上管理.该项目开始于2011年8月12日,在这两年多的时间里,它持续保持活跃更新.开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间,在iOS开发中经常会用到第三方库如AFNetworking,ASIHttpRequest等,在使用第三方库时,你除了要导数源码外,但是,集成这些依赖库需要我们手动去配

  • 史上最详细的CocoaPods安装教程(图文)

    虽然网上关于CocoaPods安装教程多不胜数,但是我在安装的过程中还是出现了很多错误,所以大家可以照下来步骤装一下,我相信会很好用. 前言 在iOS项目中使用第三方类库可以说是非常常见的事,但是要正确地配置他们有时候是非常繁琐的事情,幸运的是CocoaPods是一个很好的解决方案. 什么是CocoaPods CocoaPods是OS X和iOS下的一个第三类库管理工具,通过CocoaPods工具我们可以为项目添加被称为"Pods"的依赖库(这些类库必须是CocoaPods本身所支持的

  • 2016 cocoapods的安装和使用方法以及版本升级遇到的问题

    一.CocoaPods是什么? CocoaPods是一个负责管理iOS项目中第三方开源库的工具.CocoaPods的项目源码在Github上管理.该项目开始于2011年8月12日,在这两年多的时间里,它持续保持活跃更新.开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间,在iOS开发中经常会用到第三方库如AFNetworking,ASIHttpRequest等,在使用第三方库时,你除了要导数源码外,但是,集成这些依赖库需要我们手动去配

  • IOS安装CocoaPods详细教程

    一.简介 什么是CocoaPods CocoaPods是OS X和iOS下的一个第三类库管理工具,通过CocoaPods工具我们可以为项目添加被称为"Pods"的依赖库(这些类库必须是CocoaPods本身所支持的),并且可以轻松管理其版本. CocoaPods的好处 1.在引入第三方库时它可以自动为我们完成各种各样的配置,包括配置编译阶段.连接器选项.甚至是ARC环境下的-fno-objc-arc配置等. 2.使用CocoaPods可以很方便地查找新的第三方库,这些类库是比较&quo

  • IOS CocoaPods详细使用方法

    一.什么是CocoaPods 1.为什么需要CocoaPods 在进行iOS开发的时候,总免不了使用第三方的开源库,比如SBJson.AFNetworking.Reachability等等.使用这些库的时候通常需要: 下载开源库的源代码并引入工程 向工程中添加开源库使用到的framework 解决开源库和开源库以及开源库和工程之间的依赖关系.检查重复添加的framework等问题 如果开源库有更新的时候,还需要将工程中使用的开源库删除,重新执行前面的三个步骤,顿时头都大了... 自从有了Coco

  • iOS Crash常规跟踪方法及Bugly集成运用详细介绍

    iOS Crash常规跟踪方法及Bugly集成运用 当app出现崩溃, 研发阶段一般可以通过以下方式来跟踪crash信息 #1.模拟器运行, 查看xcode错误日志 #2.真机调试, 查看xcode错误日志 #3.真机运行, 查看device系统日志 下面举例说明, 先写一段会Crash的代码crashdemo: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view

  • iOS UIView常见属性方法小结

    下面通过实例代码给大家详细介绍了iOS UIView常见属性方法,具体代码如下所示: UIView : UIResponder /** 通过一个frame来初始化一个UI控件 */ - (id)initWithFrame:(CGRect)frame; // YES:能够跟用户进行交互 @property(nonatomic,getter=isUserInteractionEnabled) BOOL userInteractionEnabled; // default is YES // 控件的一

  • iOS runtime动态添加方法示例详解

    前言 上手开发 iOS 一段时间后,我发现并不能只着眼于完成需求,利用闲暇之余多研究其他的开发技巧,才能在有限时间内提升自己水平.当然,"其他开发技巧"这个命题对于任何一个开发领域都感觉不找边际,而对于我来说,尝试接触 objc/runtime 不失为是开始深入探索 iOS 开发的第一步.下面主要介绍了关于iOS runtime动态添加方法的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 一.概念 1.动态添加方法 开发使用场景:如果一个类方法非常多,加载类

  • python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例

    PyQt5树形结构控件QTreeWidget简介 QTreeWidget 类根据预设的模型提供树形显示控件. QTreeWidget 使用类似于 QListView 类的方式提供一种典型的基于 item 的树形交互方法类,该类基于QT的"模型/视图"结构,提供了默认的模型来支撑 item 的显示,这些 item 类为 QTreeWidgetItem 类. 如果不需要灵活的"模型/视图"框架,可以使用QTreeWidget 来创建有层级关系的树形结构.当把标准 ite

  • IOS内存泄漏检查方法及重写MLeakFinder

    对于iOS开发来讲,内存泄漏的问题,已经是老生常谈的话题.在日常的面试中经常会提到这些问题.我们日常的开发过程中进行内存泄漏的检测,一般是使用instrument工具中的Leaks/Allocation来进行排查,网络上也有比较高效又好用的内存泄漏检测工具,MLeakFinder. MLeakFinder-原理 首先看UIViewController,当一个UIViewController被pop或dismiss的时候,这个VC包括在这个VC上的View,或者子View都会很快的被释放.所以我们

  • iOS masonry的使用方法

    目录 iOS masonry的基本使用 一.CocoaPods的安装 二.Masonry的基本使用 1.三个约束和基础API iOS masonry的基本使用 前言: 在写OC的UI时,当在不同的机型上运行时,如果只用frame则会导致视图中的控件严重变形,这是因为不同机型的屏幕大小不一样,所以这周学习了masonry,掌握了一些基本用法.在使用第三方库Masonry之前,需要先安装CocoaPods. 一.CocoaPods的安装 安装教程 安装好后,创建一个工程"test2",创建

  • IOS开发自定义view方法规范示例

    目录 前言 一.关于自定义View的初始化方法 二.关于addSubview 三.关于layoutSubviews 四.关于frame与bounds 总结 前言 对于接触业务开发的童鞋,自定义View的开发是进行最频繁的工作了.但发现一些童鞋还是没有以一个好的规范甚至以一种错误的方式来搭建UI控件.由此,本文将以以下目录来进行讲叙,详细描述关于自定义View的一些书写注意事项. 关于自定义View的初始化方法 关于addSubview 关于layoutSubviews 关于frame与bound

  • .net平台推送ios消息的实现方法

    本文实例讲述了.net平台推送ios消息的实现方法.分享给大家供大家参考. 具体实现步骤如下: 1.ios应用程序中允许向客户推送消息 2.需要有苹果的证书以及密码(怎么获取,网上搜一下,需要交费的) 3.iphone手机一部,安装了该ios应用程序 4..net 项目中引用PushSharp.Apple.dll,PushSharp.Core.dll(这两个文件在网上搜一下,有源码的) 5.开始写代码,定义全局的对象PushBroker pusher = new PushBroker(); 6.

  • php、java、android、ios通用的3des方法(推荐)

    php服务器,java服务器,android,ios开发兼容的3des加密解密, php <?php class DES3 { var $key = "my.oschina.net/penngo?#@"; var $iv = "01234567"; function encrypt($input){ $size = mcrypt_get_block_size(MCRYPT_3DES,MCRYPT_MODE_CBC); $input = $this->pk

随机推荐