现在我们开发中经常用到第三方库,但是不使用一个管理工具来把所有的第三方库进行管理,那么你的项目就会显得很臃肿而且很不好管理,对于第三方库的版本升级更是费尽的要死. 所以现在大部分的程序员都会使用CocoaPods来管理开发中所使用到的第三方库,那么有多少人对Podfile这个配置第三方库与项目之间依赖,版本等信息的文件是完整的了解过的呢,下面我们一起来探讨探讨Podfile的基本使用吧!
什么是Podfile呢?
Podfile文件是一种规则描述,用于描述一个或多个Xcode工程的targets之间的依赖.
一般我们使用到的只有一句话:
pod 'AFNetworking', '~> 2.0'
目前根据官方文档说明,Podfile全局配置只有一个命令:
install!
官方说明它的作用是:指定CocoaPods安装Podfile时所使用的安装方法
CocoaPods就是用于管理第三方依赖的。我们通过Podfile文件配置来指定工程中的每个target之间与第三方之间的依赖。
有以下三个命令来管理依赖:
- pod 指定特定依赖。比如指定依赖AFNetwroking
- podspec 提供简单的API来创建podspec
- target 在我们的工程中,通过target指定所依赖的范围。
一般我们通过Pod命令指定所依赖的第三方及第三方库的版本范围。
永远使用最新版本:
pod 'AFNetworking'
当我们永远使用远程仓库中的最新版本时,我们只需要指定仓库名即可。当有新的版本发布时,执行pod update命令,会自动的更新至最新的版本。但是版本之间一般都会存在很大的差异,比如AF2.0和AF3.0的差异.因此我们应该使用指定版本范围的方式或者使用指定版本的方式:
使用固定版本:
pod 'AFNetworking','2.6'
使用指定版本范围:
pod 'AFNetworking','~>2.0'
使用这种写法是很有用的,因此小版本的升级一般是fix bug,当有bug被fix时,我们确实应该更新。从2.6升级到3.0时,不会去更新到3.0版本。我们认为从3.0是一个大版本,大版本的发布,通常不是fix bug,而是增加功能或者改动较大。
那么有哪些符号可以指定范围呢:
- >= version 要求版本大于或者等于version,当有新版本时,都会更新至最新版本
- < version 要求版本小于version,当超过version版本后,都不会再更新
- <= version 要求版本小于或者等于version,当超过version版本后,都不会再更新
- ~> version 比如上面说明的version=1.1.0时,范围在[1.1.0, 2.0.0)。注意2.0.0是开区间,也就是不包括2.0.0。
如果我们的库是在本地的,那么我们可以通过这样的命令来指定。由于是引用目录,因此外部直接修改目录中的内容,CocoaPods也会更新到最新的!
使用本地库
pod 'AFNetworking', :path => '~/Documents/AFNetworking'
platform指定平台版本,列如:
platform :ios, '7.0'
platform :ios
如果没有指定版本,官方默认值说明如下:各平台默认值如下:
- iOS:4.3
- OS X:10.6
- tvOS:9.0
- watchOS:2.0
source是指定pod的来源。如果不指定source,默认是使用CocoaPods官方的source。通常我们没有必要添加。
// 如果不想使用官方的,而是在别的地方也有,可以这样指定
source 'https://github.com/artsy/Specs.git'
// 默认是官方的source
source 'https://github.com/CocoaPods/Specs.git'