现在我们开发中经常用到第三方库,但是不使用一个管理工具来把所有的第三方库进行管理,那么你的项目就会显得很臃肿而且很不好管理,对于第三方库的版本升级更是费尽的要死. 所以现在大部分的程序员都会使用CocoaPods来管理开发中所使用到的第三方库,那么有多少人对Podfile这个配置第三方库与项目之间依赖,版本等信息的文件是完整的了解过的呢,下面我们一起来探讨探讨Podfile的基本使用吧!

什么是Podfile呢?   

Podfile文件是一种规则描述,用于描述一个或多个Xcode工程的targets之间的依赖.

一般我们使用到的只有一句话:

 

pod 'AFNetworking', '~> 2.0'

 

目前根据官方文档说明,Podfile全局配置只有一个命令:

 

install!

 

 

官方说明它的作用是:指定CocoaPods安装Podfile时所使用的安装方法

CocoaPods就是用于管理第三方依赖的。我们通过Podfile文件配置来指定工程中的每个target之间与第三方之间的依赖。

有以下三个命令来管理依赖:

 

  1. pod 指定特定依赖。比如指定依赖AFNetwroking
  2. podspec 提供简单的API来创建podspec
  3. 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,而是增加功能或者改动较大。

那么有哪些符号可以指定范围呢:

  1. >= version 要求版本大于或者等于version,当有新版本时,都会更新至最新版本
  2. < version 要求版本小于version,当超过version版本后,都不会再更新
  3. <= version 要求版本小于或者等于version,当超过version版本后,都不会再更新
  4. ~> 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

 

如果没有指定版本,官方默认值说明如下:各平台默认值如下:

  1. iOS:4.3
  2. OS X:10.6
  3. tvOS:9.0
  4. watchOS:2.0

source是指定pod的来源。如果不指定source,默认是使用CocoaPods官方的source。通常我们没有必要添加。

// 如果不想使用官方的,而是在别的地方也有,可以这样指定
source 'https://github.com/artsy/Specs.git'
 
// 默认是官方的source
source 'https://github.com/CocoaPods/Specs.git'