使用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'
发表评论