热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用CocoaPods管理依赖库

这篇内容将介绍Mac和iOS开发中必备的一个依赖库管理工具CocoaPods。在iOS开发中势必会用到一些第三方依赖库,比如大家都熟悉的ASIHttpRequest、AFNetwo
这篇内容将介绍Mac和iOS开发中必备的一个依赖库管理工具CocoaPods。
 
在iOS开发中势必会用到一些第三方依赖库,比如大家都熟悉的ASIHttpRequest、AFNetworking、JSONKit等。使用这些第三方类库能极大的方便项目的开发,但是,集成这些依赖库需要我们手动去配置,例如集成ASIHttpRequest库时除了加入源码以外还需要手动去添加一些系统的framework,CFNetwork、MobileCoreServices等,如果这些第三方库发生了更新,还需要手动去更新项目。这就显得非常麻烦。有麻烦自然有解决办法,CocoaPods就是为了解决这个问题而生的。通过CocoaPods,我们可以将第三方的依赖库统一管理起来,配置和更新只需要通过简单的几行命令即可完成,大大的提高了实际开发中的工作效率,使我们的主要精力集中到更重要的事情上去。
 
安装CocoaPods
 
我的环境为Mac OS X 10.9.1,安装CocoaPods之前,先确保本地有Ruby环境,因为CocoaPods运行于Ruby之上,默认情况下,Mac是自带了Ruby环境的,可以通过命令行ruby -v查看当前Ruby的版本,我用的是1.9.3p448。接下来我们就可以通过如下命令安装CocoaPods了。
  1. $ sudo gem install cocoapods 
 
输入上述命令后可能会无响应,那是因为你身在天朝,伟大的墙拦住了你的去路,不知为什么,cocoapods.org这种无害产物也要被墙。不过没关系,我们可以通过淘宝的Ruby镜像来访问Cocoapods,在终端输入如下命令将Ruby镜像替换为淘宝的。
  1. $ gem sources --remove https://rubygems.org/ 
  2. $ gem sources -a http://ruby.taobao.org/ 
 
完成后可以通过如下命令来查看当前的Ruby镜像是否已经指向了淘宝的。
  1. $ gem sources -l 
 
如果输出结果是如下这样,那说明这一步就成功了。
  1. *** CURRENT SOURCES *** 
  2.   
  3. http://ruby.taobao.org/ 
 
接下来就可以重新运行安装命令来安装CocoaPods了,根据你的网络情况,几秒或十几秒后安装过程就完成了,总的来说,安装过程还是比较简单的。如果其中你遇到了什么问题,请自行Google解决,都能找到你想要的答案。
 
使用CocoaPods
 
我们通过集成JSONKit类库来演示如何使用CocoaPods来做依赖库管理。首先,建立一个xcode工程,命名为CocoaPodsTest,现在的工程结构如下图所示。
,
这里我们要集成JSONKit,可以先通过如下命令来判断其是否支持CocoaPods。
  1. $ pod search JSONKit 
 
执行后通过输出结果可以看到JSONKit是支持CocoaPods的,注意红框标记的内容,这是待会我们配置xcode时需要的信息,这条配置项就是告诉CocoaPods去下载和管理哪一个第三方库。
,
检测完毕后我们来到工程CocoaPodsTest的目录下,新建一个名为Podfile的文件(这里通过命令行创建)
  1. $ vim Podfile 
这个Podfile文件的作用是配置依赖库信息,就是告诉CocoaPods去下载和管理哪些依赖库,文件创建好以后,打开文件并加入如下内容。(vim打开文件后按i进入插入模式,编辑完成后按esc退出编辑模式,接着输入:wq保存并退出文件)
,
这时候,工程目录下就会有一个Podfile文件了,注意必须和.xcodeproj在同一个目录下。接下来就可以使用CocoaPods来安装并管理JSONKit库了,确保命令行当前路径是在CocoaPodsTest目录下,运行如下命令。
  1. $ pod install 
 
安装完成后会提示如下信息,并且我们的工程目录下会多出一个.xcworkspace结尾的文件,命令行信息绿色部分提醒我们“从此使用CocoaPodsTest.xcworkspace来打开项目”。
,
通过CocoaPodsTest.xcworkspace来打开项目,这时,我们的项目工程结构就会变成下图这样,多出一个名为Pods的依赖工程,打开Pods文件夹后,发现JSONKit已经在里面了
,
这时候就可以在项目文件中引入JSONKit.h了,这时候如果你发现import的时候没有提示JSONKit的文件,可以在target-Build Settings下修改“User Header Search Paths”项,新增${SRCROOT}并选择rcursive,如下图。
,
设置完成后就可以在文件中直接引用第三方库的文件并使用了。
 
,
到此,新建工程并使用CocoaPods来管理依赖库的过程就完成了,如果是直接使用已有CocoaPods的项目,则需要首先运行一下pod update命令来更新项,然后照样通过.xcworkspace来打开工程。
 
如果需要依赖多个第三方类库,只需要修改Podfile文件的配置,然后运行pod update命令即可,比如新增一个AFNetworking的依赖库,首先执行pod search AFNetworking查看一下AFNetworking的配置信息,修改Podfile文件,在后面增加AFNetworking的对应配置信息,然后运行pod update命令就完成了对AFNetworking的集成。
,
添加AFNetworking库后的目录结构如下。
,
如果类库有更新,查看更新配置并执行pod update即可简单完成了,从此从手动更新繁重的体力劳动中解脱出来。
 
简单小结一下:
安装CocoaPods
新建项目并在工程根目录下新建Podfile文件,配置需要管理的第三方库
运行pod install下载安装第三方库
 
更多内容请参考CocoaPods Guides
 
转自:http://www.cocoachina.com/newbie/basic/2014/0107/7663.html

使用CocoaPods管理依赖库,,

使用CocoaPods管理依赖库


推荐阅读
  • 本文深入探讨了 iOS 开发中 `int`、`NSInteger`、`NSUInteger` 和 `NSNumber` 的应用与区别。首先,我们将详细介绍 `NSNumber` 类型,该类用于封装基本数据类型,如整数、浮点数等,使其能够在 Objective-C 的集合类中使用。通过分析这些类型的特性和应用场景,帮助开发者更好地理解和选择合适的数据类型,提高代码的健壮性和可维护性。苹果官方文档提供了更多详细信息,可供进一步参考。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文详细介绍了如何通过命令行启动MySQL服务,包括打开命令提示符窗口、进入MySQL的bin目录、输入正确的连接命令以及注意事项。文中还提供了更多相关命令的资源链接。 ... [详细]
  • 本文介绍了在Windows环境下使用pydoc工具的方法,并详细解释了如何通过命令行和浏览器查看Python内置函数的文档。此外,还提供了关于raw_input和open函数的具体用法和功能说明。 ... [详细]
  • 作为一名在大型手机游戏公司工作的程序员,尽管主要负责游戏逻辑和内容的开发,但对iOS底层开发接触较少。现在有了iPhone和可以虚拟MAC环境的电脑,希望能找到有效的iOS开发学习路径。 ... [详细]
  • 万事起于配置开发环境
    万事起于配置开发环境 ... [详细]
  • 深入理解 Oracle 存储函数:计算员工年收入
    本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • CSS 布局:液态三栏混合宽度布局
    本文介绍了如何使用 CSS 实现液态的三栏布局,其中各栏具有不同的宽度设置。通过调整容器和内容区域的属性,可以实现灵活且响应式的网页设计。 ... [详细]
  • 本文介绍如何在 Xcode 中使用快捷键和菜单命令对多行代码进行缩进,包括右缩进和左缩进的具体操作方法。 ... [详细]
  • 在Linux系统中配置并启动ActiveMQ
    本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ... [详细]
  • 本文介绍如何使用 NSTimer 实现倒计时功能,详细讲解了初始化方法、参数配置以及具体实现步骤。通过示例代码展示如何创建和管理定时器,确保在指定时间间隔内执行特定任务。 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
author-avatar
ym_泳梅
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有