podfile语法

ads

        使用CocoaPods 管理项目基本步骤: 1. 新建工程 (进入旧有工程所在目录);2. 在.xcodeproj所在目录下创建Podfile文件,编辑Podfile;3. 在工程目录下运行pod install 或者pod update。

        下面详细介绍一下Podfile文件的编写。可参考CocoaPods英文官方文档:https://guides.cocoapods.org/syntax/podfile.html。本文直接上代码加中文注释。

#source 'https://xx.xx.com/xx.git' #依赖库的来源地址,不指明默认是官方的 'https://github.com/CocoaPods/Specs.git'需要指定其他源 可指定 source  'xxxx'。

workspace 'XXX.xcworkspace' #生成的workspace名称,如果不指明,默认是Podfile同级目录下的.xcodeproj同名。


set_arc_compatibility_flag! #设置ARC


install! 'cocoapods', :deterministic_uuids => false,#默认true,创建Pods项目时是否生成确定性uuid。

                      :clean => true,#默认是true根据podspec和项目支持的平台,清理pod不使用的文件。

                      :deduplicate_targets => true,#默认是true,#例

                                                   #target 'MyTargetA' do

                                                   #  pod 'MyPod/SubA'

                                                   #end

                                                   #target 'MyTargetB' do

                                                   #  pod 'MyPod'

                                                   #end

                                                   #会生成 MyPod and MyPod-SubA。

                      :integrate_targets => true,#默认是true,是否集成到project,如果设置false,会下载到Pods/目录下,不会集成到工程下。

                      :lock_pod_sources => false,#默认是true,当修改文件时,xcode会提示是否解锁文件;设置为true在插入时会影响性能,显著影响时建议设置为flase。

                      :warn_for_multiple_pod_sources => true,#默认是true,多个源包含相同名字和版本的pod时是否有警告。

                      :share_schemes_for_development_pods => false,#默认是false,scheme会自动创建,但是默认不会共享,

                      :disable_input_output_paths => false,#默认是false,是否禁用CocoaPods脚本阶段的输入和输出路径(Copy Frameworks & Copy Resources)。

                      :preserve_pod_file_structure => false,#默认false,Pod源的文件结构仅为开发Pod保留,设置preserve_pod_file_structure为true将始终保留文件结构。

                      :generate_multiple_pod_projects => false,#默认是false,如果设置为true,会为每个target生产对应的.xcodeproj 生成的.xcodeproj嵌套在Pods.xcodeproj下。

                      :incremental_installation => false,#默认是false,是否增量式插入,是否仅重新生成相对之前有变动的targets和相关工程。

                      :skip_pods_project_generation => false#默认是false 是否跳过生成Pods.xcodeproj。


inhibit_all_warnings!#忽略所有警告,可以单独指定忽略某个库的编译警告 #pod 'SDWebImage','~>5.0', :inhibit_warnings => true 。


target 'MyTarget' do


  platform :ios,'10.0' #支持的平台及最低操作系统。

  # platform :watchos, '3.0' #watchos平台。

  project "XXX" #对应的工程,如果不指定,只有Podfile同目录下的工程被使用。

  pod 'YYText'#使用最新版本。

  pod  'FCUUID','1.3.1'#使用指定版本号对应的版本。

  #  pod 'SDWebImage','>5.0'#大于5.0的最新版本。

  pod 'SDWebImage','~>5.0'#使用5.0到6.0(不包含)的最新版本。

  pod 'NetworkEye',:configurations=>['DEBUG']#configurations只在debug环境下集成,默认所有配置都包含。

 #  :modular_headers => true, #是否包含modular_header。

  #  :source => 'https://github.com/CocoaPods/Specs.git'#可以指定源,优先指定依 赖源。

  #  pod 'QueryKit', :subspecs => ['Attribute', 'QuerySet']#包含子分支。

  #  pod 'AFNetworking', :testspecs => ['UnitTests', 'SomeOtherTests']#默认不包含testspecs。

  #  pod 'AFNetworking', :path => '../AFNetworking'#使用本地路径。

  #  #以下引用分支下必须有podspec 文件:

  #  pod 'AFNetworking',:git => 'https://github.com/gowalla/AFNetworking.git' #master分支

  #  pod 'AFNetworking',:git => 'https://github.com/gowalla/AFNetworking.git',:branch => 'dev' #dev分支

  #  pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :tag => '0.7.0' #tag标签

  #  pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :commit => '082f8319af' #具体某次提交

  #  #如果分支下没有podspec文件,需要指定podspec的目录:

  #  pod 'JSONKit', :podspec => 'https://example.com/JSONKit.podspec'

  #  podspec :path => '/Documents/PrettyKit/PrettyKit.podspec'#指定podspec路径。

  #  script_phase :name => 'HelloWorldScript', :script => 'puts "Hello World"', :shell_path => '/usr/bin/ruby'#添加脚本。


end


#抽象target 方便target继承依赖,不会直接链接到xcode

#abstract_target 'Networking' do

#  pod 'AlamoFire'

#  target 'ShowsiOS' do

#    pod 'ShowWebAuth'

#    end

#  target 'ShowsTV' do

#    inherit! :complete  #完全继承外部target,(不继承inherit! :none)

#    pod 'ShowWebAuth'

#    end

#  target 'ShowsTests' do

#     inherit! :search_paths #继承search_paths,

#     pod 'Specta'

#     pod 'Expecta'

#   end

#  supports_swift_versions '>= 3.0', '< 4.0'#声明支持的swift版本

 #use_frameworks!使用framework库代替.a库

#  target 'MyApp' do

#    use_frameworks!

#    pod 'AFNetworking', '~> 1.0'

#  end

#  target 'MyApp' do

#    use_frameworks! :linkage => :dynamic #链接动态库

#    pod 'AFNetworking', '~> 1.0'

#  end

#  target 'ZipApp' do

#    use_frameworks! :linkage => :static #链接静态库

#    pod 'SSZipArchive'

#  end

#end



# cocoapods配置,安装后的操作

post_install do |installer|

   installer.pods_project.targets.each do |target|

     puts target.name

   end

end

#安装前的配置

pre_install do |installer|

 # Do something fancy!

end

   

#plugin 'cocoapods-keys', :keyring => 'Eidolon' #安装过程中使用插件 ;cocoapods-keys 提供了外部注入键值对的功能,可通过外部的键值对工程进行配置,Cocoapods-keys注入的键值对均存储在~/.cocoapods/keys。

#plugin 'slather'


最后编辑于:2024/1/10 拔丝英语网

admin-avatar

英语作文代写、国外视频下载

高质量学习资料分享

admin@buzzrecipe.com