Podfile语法

Podfile

Podfile文件详细描述了一个或多个工程中targets的依赖关系。Podfile会默认创建一个隐式的目标链接到工程中用户的第一个target,名称为“default”。

Dependencies(依赖项)

Podfile描述用于各个用户targe中的依赖项

  • pod 是声明指定依赖的方法

  • podspec 提供了一个简单的API用于创建podspecs

  • target 允许你在工程中限定依赖项只在你指定的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
      

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'

*

results matching ""

    No results matching ""