iOS依赖库管理工具之CocoaPods

  CocoaPods 是开发 OS X 和 iOS 应用程序的一个第三方库的依赖管理工具。利用 CocoaPods,可以定义自己的依赖关系库 (称作 pods),并且随着时间的变化,在整个开发环境中对第三方库的版本管理非常方便。

1.为什么要用CocoaPods?

  在iOS项目开发过程中,我们经常会使用一些第三方库,如AFNetworking、YYKit、Masonry等,通过这些优秀的第三方库,来帮助我们更有效率的进行开发。回想一下我们导入这些第三方库的过程:

  • 第一步:下载第三方库的源代码并添加到工程;
  • 第二步:添加第三方库使用到的Framework;
  • 第三步:处理第三方库之间或第三方库与工程之间的依赖关系以及重复添加等问题;
  • 第四步:如果第三方库有更新,需要将工程中使用的第三方库删除,重新执行前面的三个步骤。

  上面的四个步骤,如果我们使用CocoaPods,那么只需要配置好相应的Podfile,CocoaPods会为我们去做好这些事情。

2.安装CocoaPods

  CocoaPods是用Ruby 的依赖管理 gem 进行构建的,要想使用它首先需要有Ruby的环境。OS X系统默认可以运行Ruby,因此执行以下命令即可:

$ sudo gem install cocoapods

  安装完成后,执行下面的指令,如果没有报错,则说明安装成功。

$ pod setup

  【说明】:如果执行上面指令的时候,长时间没有反应,这可能是因为Ruby的默认源使用cocoapods.org,国内访问这个网址有时候会有问题,可以将该源替换成淘宝的,替换方式如下:

$ gem sources --remove https://rubygems.org/
$ gem sources -a http://ruby.taobao.org/  

  替换完成之后,执行指令:

$ gem sources -l

  如果输出结果和下图一样,则表示替换成功。

3.升级CocoaPods

  CocoaPods的升级很简单,直接执行安装指令即可:

$ sudo gem install cocoapods

4.Podfile文件说明

  Podfile 是一个文件,用于定义项目所需要使用的第三方库。该文件支持高度定制,详细的信息可以参考Podfile 指南。下面列出常用的语法并进行说明。

  先看一个示例的Podfile文件:

source ‘https://github.com/Artsy/Specs.git‘
source ‘https://github.com/CocoaPods/Specs.git‘

platform :ios, ‘8.0‘
inhibit_all_warnings!

target ‘MVVMReactiveCocoa‘ do
  pod ‘SDWebImage‘, ‘~> 3.7.1‘
  pod ‘UIActivityIndicator-for-SDWebImage‘
  pod ‘MBProgressHUD‘, ‘~> 0.9‘
  pod ‘SSKeychain‘, ‘~> 1.2.2‘
  pod ‘IQKeyboardManager‘, ‘~> 3.2.0.3‘
  pod ‘SVPullToRefresh‘, ‘~> 0.4.1‘
  pod ‘MKNetworkKit‘, ‘~> 0.87‘
  pod ‘WebViewJavascriptBridge‘, ‘~> 4.1.4‘
  pod ‘FormatterKit‘, ‘~> 1.8.0‘
  pod ‘DZNEmptyDataSet‘, ‘~> 1.5.1‘
  pod ‘Ono‘, ‘~> 1.2.0‘
  pod ‘FMDB‘
  pod ‘UMengSocial‘, ‘~> 4.3‘
  pod ‘GPUImage‘, ‘~> 0.1.7‘
  pod ‘Reveal-iOS-SDK‘, ‘~> 1.6.0‘
  pod ‘Appirater‘
  pod ‘SDVersion‘
  pod ‘YYKit‘
  pod ‘OcticonsIOS‘, :git => ‘https://github.com/jacksonh/OcticonsIOS.git‘, :commit => ‘4bd3b21‘
  pod ‘LCFInfiniteScrollView‘, :git => ‘https://github.com/leichunfeng/LCFInfiniteScrollView.git‘

  target ‘MVVMReactiveCocoaTests‘ do
    inherit! :search_paths
  end
end

  看到上面的Podfile文件,有些语句的含义,我们也能大概理解,下面细说一下:

序号 语句 说明
1 source  ‘URL‘ 指定镜像仓库的源
2 platform : iOS,  ‘6.0‘ 指定所支持系统和最低版本
3 inhibit_all_warnings! 屏蔽所有warning
4 workspace ‘项目空间名‘ 指定项目空间名
5 xcodeproj ‘工程文件名‘ 指定xcodeproj工程文件名
6 pod  ‘库名‘ 引入库,什么版本都可以(一般是最新版本)
7 pod  ‘库名‘, ‘版本‘ 引入指定版本的库
8 pod ‘库名‘, :podspec => ‘podspec文件路径‘ 指定导入库的podspec文件路径
9 pod ‘库名‘, :Git => ‘源码git地址‘ 指定导入库的源码git地址
10 pod ‘库名‘, :tag => ‘tag名‘   指定导入库的Tag分支

  关于引入库的版本,除了指定和不指定之外,还有如下操作:

  • >0.1 高于0.1的任何版本;
  • >=0.1 版本0.1和任何更高版本;
  • <0.1 低于0.1的任何版本;
  • <=0.1 版本0.1和任何较低的版本;
  • ?>0.1.2 版本 0.1.2的版本到0.2 ,不包括0.2。这个基于你指定的版本号的最后一个部分。这个例子等效于>= 0.1.2并且 <0.2.0,并且始终是你指定范围内的最新版本。

5.使用CocoaPods

5.1创建一个演示项目

  为了演示使用CocoaPods的过程,在这里创建了一个MVVMDemo的演示项目,创建项目的过程这里不细说了。

5.2创建Podfile文件

  在终端进入项目所在目录,然后用如下指令创建Podfile文件:

$ touch Podfile

  此时项目文件夹里会创建一个名为Podfile的文件,如下图所示:

5.3编辑Podfile文件  

  使用XCode打开Podfile文件:

$ open -a Xcode Podfile

  在这里,我们需要导入AFNetworking、YYKit、Masonry库,因此在Podfile文件中输入如下内容:

source ‘https://github.com/CocoaPods/Specs.git‘

platform :ios, ‘8.0‘
inhibit_all_warnings!

pod ‘AFNetworking‘
pod ‘YYKit‘
pod ‘Masonry‘

5.4执行导入命令

  编写完成Podfile文件之后,保存关闭,输入如下指令导入第三方库:

$ pod install

  CocoaPods就会做如下工作:下载源码、配置依赖关系、引入需要的framework等。命令的执行结果如下所示:

Updating local specs repositories

CocoaPods 1.1.0.beta.1 is available.
To update use: `gem install cocoapods --pre`
[!] This is a test version we‘d love you to try.

For more information see http://blog.cocoapods.org
and the CHANGELOG for this version http://git.io/BaH8pQ.

Analyzing dependencies
Downloading dependencies
Installing AFNetworking (3.1.0)
Installing Masonry (1.0.1)
Installing YYKit (1.0.7)
Generating Pods project
Integrating client project

[!] Please close any current Xcode sessions and use `MVVMDemo.xcworkspace` for this project from now on.
Sending stats
Sending stats
Pod installation complete! There are 3 dependencies from the Podfile and 3 total
pods installed.

  这说明pod install命令执行成功了。现在再看一下工程目录的变化:

  从上图可以看到,多了三个文件:

  • Podfile.lock:这是 CocoaPods 创建的最重要的文件之一。它记录了需要被安装的 pod 的每个已安装的版本。如果你想知道已安装的 pod 是哪个版本,可以查看这个文件。推荐将 Podfile.lock 文件加入到版本控制中,这有助于整个团队的一致性。
  • MVVMDemo.xcworkspace:从上面的执行结果可以看到,红色部分的注释提示我们现在项目用MVVMDemo.xcworkspace来打开,原来的工程设置已经被更改了,如果直接打开原来的工程文件去编译就会报错,只能使用新生成的workspace来进行项目管理。
  • Pods:CocoaPods会将所有的第三方库以target的方式组成一个名为Pods的工程。整个第三方库工程会生成一个名称为libPods.a的静态库给MVVMDemo项目使用。

  打开MVVMDemo.xcworkspace工程,界面如下:

  在项目中引用刚才添加的第三方库的头文件,执行编译操作,操作成功。

时间: 2024-08-24 17:24:34

iOS依赖库管理工具之CocoaPods的相关文章

iOS依赖库管理工具之Carthage

在iOS开发中,我们常会用CocoaPods来进行依赖库的管理.CoaoaPods 是一套整体解决方案,我们在 Podfile 中指定好我们需要的第三方库,然后 CocoaPods 就会进行下载,集成,然后修改或者创建我们项目的 workspace 文件. 相比之下,Carthage 就要轻量很多,它也需要一个叫做 Cartfile 的描述文件,但 Carthage 不会对我们的项目结构进行任何修改,更不多创建 workspace.它只是根据我们描述文件中配置的第三方库,将它们下载到本地,然后使

iOS第三方库管理工具

作者:彷徨iOS 原文地址1:http://iostree.sinaapp.com/?p=78 原文地址2:http://blog.csdn.net/wzzvictory/article/details/18737437 iOS第三方库管理工具Pods 很多使用第三方库都觉得超爽,可以省略很多代码,大大节省了我们的开发时间,但是,对于很多初学者来说,使用起来超级麻烦,有可能每个第三方库需要的配置步骤都不一样,并且很容易出错.在此我给大家分享一个非常好用的一款工具-Pods,分享之前我在网上查阅了

iOS开发笔记 - 工具篇

??工欲善其事,必先利其器.作为一个合格的iOS开发者,熟练的使用各种开发或辅助开发的工具也算是一项必备技能吧,下面是我整理的一些工具及其应用场景和使用方法. 文档浏览工具 - Dash 网络抓包工具 Charles Wireshark 版本控制工具 Github SourceTree CornerStone SQLite数据库可视化工具 SQLiteBrowser Datum 界面调试工具 - Reveal 调试仪表 - Gauge 剖面仪器 - Instruments Allocations

iOS开发之CocoaPods(objective-c第三方库管理工具)

介绍: iOS开发中,大多数情况下,我们都需要集成一些第三方依赖库,对于一个稍大的项目,用到的第三方依赖库的数量也非常可观.CocoaPods是objective-c第三方库管理工具,方便第三方库的管理. 用法: 1. 安装 $ sudo gem install cocoapods 2. 用法 在iOS项目目录下新建Podfile文件,添加第三方依赖库,如 source 'https://github.com/CocoaPods/Specs.git' platform :ios, '8.0' p

用CocoaPods做iOS第三方库管理

文档更新说明 2012-12-02 v1.0 初稿 2014-01-08 v1.1 增加设置ruby淘宝源相关内容 2014-05-25 v2.0 增加国内spec镜像.使用私有pod.podfile.lock.创建spec文件等内容 CocoaPods简介 每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如Java语言的Maven,nodejs的npm.随着iOS开发者的增多,业界也出现了为iOS程序提供依赖管理的工具,它的名字叫做:CocoaPods. CocoaPods项目的源码在G

iOS疯狂详解之CocoaPods做iOS程序包的依赖管理

每种语言发展到一个阶段,就会出现相应的依赖管理工具, 或者是中央代码仓库.比如 Java: maven,Ivy Ruby: gems Python: pip, easy_install Nodejs: npm 随着iOS开发者的增多,业界也出现了为iOS程序提供依赖管理的工具,这个工具叫:CocoaPods. CocoaPods简介 CocoaPods是一个负责管理iOS项目中第三方开源代码的工具.CocoaPods项目的源码在Github上管理.该项目开始于2011年8月12日,经过一年多的发

iOS 中的第三方库管理工具

xcode没有android studio中的gradle进行第三方库管理,但是有第三方的库管理工具CocoaPods,https://github.com/CocoaPods/CocoaPods/wiki. 用了这个命令行工具,就可以方便地维护第三方库了. iOS 中的第三方库管理工具

Php学习之依赖管理工具composer详解

本文和大家分享的主要是php中依赖管理工具composer相关用法,一起来看看吧,希望对大家学习php有所帮助. 什么是依赖管理工具 当你引用某个第三方库时,如果这个库使用到了另外一个或若干个第三方库,再或许另外一个第三方库又有其他的依赖,这样的话手动维护你需要下载安装N个包.用来解决由此产生的问题的工具就叫做依赖管理工具. 有哪些常见的依赖管理工具 Java的maven.gradle,NodeJs的npm,IOS的CocoaPods,PHP的composer 大部分编程语言都会有自己的常用依赖

iOS深入学习(使用CocoaPods进行第三方资源管理)

一年前在外包公司呆过,惊叹于Cocoa Pods的强大,也让我有不少迷惑的地方.之前写过一篇Cocoa Pods使用的博客,详细列出了通过Unix终端命令搭建环境的步骤,发布在新浪sae搭建的WordPress博客平台,但是因为没有续费,现在找不到了. 近半年来在新公司,惊叹于老大进行项目依赖关系的处理,我老大主要是对iOS平台的Xcode工具中的Workspace.Project.Target以及各种静态库之间的关系理解的比较透彻,所以他这方面的操作很牛逼.其实跟老大学习这方面的东西,基本能够