Podfile语法
Podfile
Podfile文件详细描述了一个或多个工程中targets的依赖关系。Podfile会默认创建一个隐式的目标链接到工程中用户的第一个target,名称为“default”。
Dependencies(依赖项)
Podfile描述用于各个用户targe中的依赖项
pod
是声明指定依赖的方法podspec
提供了一个简单的API用于创建podspecstarget
允许你在工程中限定依赖项只在你指定的targets中生效
pod
指定工程的一个依赖
一个依赖项通过pod名和可选的版本号来声明
- 最新版本的依赖
pod 'AFNetworking'
- 指定版本的依赖
pod 'AFNetworking', '3.0'
版本号的其他方式限定:
>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,并且始终是你指定范围内的最新版本
:head
来指定版本- 这就意味着工程会使用指定spec下该pod的最新可以用版本,不过会强制下载’bleeding edge’高风险版本(HEAD).务必小心使用,因为spec可能导致不兼容
pod 'Objection', :head
- 这就意味着工程会使用指定spec下该pod的最新可以用版本,不过会强制下载’bleeding edge’高风险版本(HEAD).务必小心使用,因为spec可能导致不兼容
关于版本控制策略的信息,可以参阅:
Build configurations(编译配置)
重要提示:
下面的语法是暂时的,将来很可能会更改,恕不另行通知。因为大家都在要求这个功能,所以我们发布了这个功能。你可以使用它,但你可能需要改变你的Podfile去使用未来版本的CocoaPods。不管怎么样,一个简单清晰的升级路径会提供给你
默认情况下, 依赖项会被安装在所有target的build configuration中。为了调试或者处于其他原因,依赖项只能在给定的build configuration中被启用
pod 'PonyDebugger', :configurations => ['Release', 'App Store']
Subspecs
当你用一个名字装Pod的时候,它将安装所有定义在podspec里面的默认subspec
pod 'QueryKit/Attribute'
也可以指定一个集合
pod 'QueryKit', :subspecs => ['Attribute', 'QuerySet']
Using the files from a local path (使用本地文件)
如果你想用一个自己开发的本地的Pod,你可以用path选项
pod 'AFNetworking', :path => '~/Documents/AFNetworking'
使用这个选项后,Cocoapods会将给定的文件夹认为是Pod的源,并且在工程中直接引用这些文件。这就意味着你编辑的部分可以保留在CocoaPods安装中
被引用的文件夹可以来自你喜爱的SCM,甚至当前仓库的一个git子模块
注意:Pod的podspec文件也应该被放在这个文件夹当中
From a podspec in the root of a library repository (引用仓库根目录的podspec)
有的时候你可能想要使用一个最新的开发版本,或者某一个二次开发版本。如果是这样,你可以在pod声明中特别标明
- 使用仓库中的master分支:
pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git'
- 使用仓库的其他分支:
pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :branch => 'dev'
- 使用仓库的某个tag:
pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :tag => '0.7.0'
- 或者指定一个提交记录:
pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :commit => '082f8319af'
*