美文网首页
Reference/Podfile

Reference/Podfile

作者: 李永开 | 来源:发表于2021-12-08 10:24 被阅读0次

    一. 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

          本文链接:https://www.haomeiwen.com/subject/whqffrtx.html