Reference/Podfile

一. Pod install!

  • 定义了CocoaPods安装podfile时的方式和选项
    第一个参数指定了安装的方式,下面的参数制定了安装的选项
    但是目前的CocoaPods只支持cocoapods,所以你的第一个参数只能填cocoapods,更多的参数会在未来的版本才支持

举个
install! 'cocoapods',
    :deterministic_uuids => false,
    :integrate_targets => false

Supported Keys:

  • :clean 默认true
    安装的时候是否要清除pods里面无效的资源
  • :deduplicate_targets 默认true
    是否支持多targets

target 'MyTargetA' do
pod 'MyPod/SubA'
end

target 'MyTargetB' do
pod 'MyPod'
end

  • :deterministic_uuids 默认true
    创建Pods project 是否生成一个确定的UUID
  • :integrate_targets 默认true是否把pods集成到用户的工程下 如果这是为false,Pods将被下载并安装到 Pods/ `文件夹下,但是它们不会集成到你的工程中
  • :lock_pod_sources 默认true
    是否锁住pods的源文件。如果锁定的话,当你在pods的源文件中修改内容时会弹窗警告。
    在安装过程中锁定 pod 会降低性能。 如果这对您的项目的 pod install 的持续时间有显着影响,您可以尝试将其设置为 false
  • :warn_for_multiple_pod_sources 默认true
    当多个源包含具有相同名称和版本的 Pod 时是否发出警告
  • :warn_for_unused_master_specs_repo 默认true
    如果项目没有明确指定基于 git 的主规范存储库,则会发出警告
  • :share_schemes_for_development_pods 默认false
    Whether to share Xcode schemes for development pods.
    Schemes for development pods are created automatically but are not shared by default.
  • :disable_input_output_paths 默认false
    是否禁用 CocoaPods 脚本阶段的输入和输出路径(Copy Frameworks & Copy Resources)
  • :preserve_pod_file_structure 默认false
    是否保留所有 Pod 的文件结构,包括外部来源的 Pod。
    By default, the file structure of Pod sources is preserved only for development pods.
    默认的,只有在development pods模式下才会维护pod的源文件的结构。
    如果打开该选项,会维护所有的包括第三方的pod的文件结构
  • :generate_multiple_pod_projects 默认false
    是否为每个 pod 目标生成一个项目。 与创建 1 个 Pods.xcodeproj 不同,此选项将为每个嵌套在 Pods.xcodeproj 下的 Pod 目标生成一个项目。
  • :incremental_installation 默认false
    是否只安装 上次安装后更改的pod库
  • :skip_pods_project_generation 默认false
    是否跳过生成 Pods.xcodeproj 而只执行依赖解析和下载。

二.ensure_bundler!

不解释

三.Pod

  • Build configurations
    默认dependencies会被安装在target的所有设置项里面,但你也可以单独设置这些选项,如下所示

pod 'PonyDebugger', :configurations => ['Debug', 'Beta']
pod 'PonyDebugger', :configuration => 'Debug'

  • Modular Headers
    你想为每个pod使用模块化的头,可以使用pod 'SSZipArchive', :modular_headers => true
    如果你使用了use_modular_headers!,就代表每个pod都使用了模块化的头,可以使用pod 'SSZipArchive', :modular_headers => false排除某个pod
  • Subspecs spec 美[spek] 投机;说明书;细则

pod 'QueryKit/Attribute'
pod 'QueryKit', :subspecs => ['Attribute', 'QuerySet']

  • Test Specs

pod 'AFNetworking', :testspecs => ['UnitTests', 'SomeOtherTests']

  • From a podspec in the root of a library repository.

pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git'
pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :branch => 'dev'
pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :tag => '0.7.0'
pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :commit => '082f8319af'

四. script_phase

可以执行脚本

script_phase :name => 'HelloWorldScript', :script => 'echo "Hello World"'
script_phase :name => 'HelloWorldScript', :script => 'puts "Hello World"', :shell_path => '/usr/bin/ruby'

五.Target configuration

  • platform

platform :ios, '4.0'
The name of platform, can be either :osx for OS X, :ios for iOS, :tvos for tvOS, or :watchos for watchOS.

  • use_modular_headers!
    对所有 CocoaPods 静态库使用模块化头文件。
  • use_frameworks!
    为 Pod 使用框架而不是静态库。使用框架时,您还可以指定要使用的 :linkage 样式,即 :static 或 :dynamic。

target 'MyApp' do
use_frameworks! :linkage => :dynamic
pod 'AFNetworking', '~> 1.0'
end

target 'ZipApp' do
use_frameworks! :linkage => :static
pod 'SSZipArchive'
end

  • supports_swift_versions
    Specifies the Swift version requirements this target definition supports.
    指定此目标定义支持的 Swift 版本要求。

target 'MyApp' do
supports_swift_versions '>= 3.0', '< 4.0'
pod 'AFNetworking', '~> 1.0'
end

六. Hooks

  • plugin

plugin 'cocoapods-keys', :keyring => 'Eidolon'
plugin 'slather'

  • pre_install
    适用时间:pods的代码被下载成功但还没有进行安装

pre_install do |installer|

Do something fancy!

end

  • pre_integrate
    项目被写到磁盘之前

pre_integrate do |installer|

perform some changes on dependencies

end

  • post_install
    适用时间:生成了Xcode project但是还没有写入到磁盘
    它接收 [Pod::Installer] 作为其唯一参数。

post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['GCC_ENABLE_OBJC_GC'] = 'supported'
end
end
end

  • post_integrate
    适用时间:project已经被写入到了磁盘

post_integrate do |installer|

some change after project write to disk

end

你可能感兴趣的:(Reference/Podfile)