安装pod库-podfile
#cocoapods #依赖管理 #podfile
1. source
source
指令指定索引库(specs)的地址
使用source指定索引库,顺序很重要。Cocoapods 会使用第一个source中最高版本的pod,不论后面的source是否包含更高的版本。
官方的source是隐式指定的。当你指定其他source时,需要显式制定官方source。
2. Dependencies
2.1 pod
pod
用于指定project或者target依赖的pod库。
pod
后面跟随pod库的名字以及可选的版本要求。
2.1.1 版本控制
'= 0.1', 指定版本为 0.1.
'> 0.1', 指定版本高于 0.1
'>= 0.1', 指定版本高于或等于 0.1
'~> 0.1.2' 指定版本高于或等于 0.1.2 ,且小于 0.2.0
'~> 0' 指定版本高于等于0,小于 1
'~> 0.1.3-beat.0' 指定版本高于等于0.1.3 小于0.2
~>
表示高于等于指定版本,但小于下一个版本。 下一个版本基于最后一个子版本号。如 '0.1.2'下一个版本为'0.2.0','1.3.4.5'下一个版本为'1.3.5.0' , '0' 下一个版本为 '1' ; 带 '-' 的版本号之后的部分会被忽略,'0.1.3-beat.0' 下一个版本为 '0.2.0'
2.1.2 pod库source配置
不指定pod库的地址,将从索引库中查找对应的.podspec文件,从.podspec文件中读取库地址
指定source
指定git地址, 不指定 branch,tag,commit时,默认为master分支最新的commit
直接指定路径,developerment pod
通过 subspecs 安装指定的子库
如果某个库中没有.podspec文件,可以使用podspec指定库外的.podsepc文件
通过 testspecs 可以指定测试库
build configuration 默认情况下,pod 库将会安装在所有的build configuration下,也可以显示指定在某几个build configuration下
2.2 target 和 abstract target
target 与 xcode 工程中的 target 对应,在 target 闭包中声明的 pod 库即对应 xcode 工程中的实际 target 所依赖的 pod库。 target 定义了 pod 库的作用范围。 target 之中可以包含 target,target 可以继承父 target 的pod库和其他配置
abstract_target 是一个虚拟的target,不与 xcode 工程中的实际 target 对应。abstract_target主要是 pod 库和其他一些配置的继承
在 Podfile 文件中,隐式声明了一个最外层的 abstract target
inherit!
可以指定继承的模式
:complete 完全继承父target的所有行为
:none 不继承
:search_paths 只继承search_paths
3. target configuration
以下配置都是 target 闭包( 包括最外层的隐式abstract target )内的配置
3.1 platform
platform 指定支持的系统和版本号;如果未指定,则为默认值:iOS 4.3,OS X 10.6,tvOS 9.0,watchOS 2.0
3.2 project
当 Podfile 文件用于多个 project 时,指定 target 所属的 project
当 Podfile 文件只用于一个 project时,不需要显示指定
3.3 inhibit_all_warnings!
屏蔽所有来自pod库的告警 也可以单独关闭或者打开告警屏蔽
3.4 use_frameworks!
pod 将被打包为 framework 而不是 static library。 :linkage 指定打包为静态framewok还是动态framework
3.5 use_modular_headers!
默认情况下,pod库会被打包为static library。use_modular_headers!可以为pod库创建modular header,这样pod库就可以作为模块被引入。
4 Workspace
4.1 workspace
workspace命令 指定包含所有的project的workspace的名字
如果没有显式指定 workspace,且只有一个 project 在 Podfile 的目录下;project 的名字将作为 workspace 的名字
4.2 generate_bridge_support!
??
4.3 set_arc_compatibility_flag!
set_arc_compatibility_flag! 命令将 -fobjc-arc 添加到 OTHER_LD_FLAGS
5 Hooks
Podfile 可以为 pod install 过程添加 hook;hook 是全局的,不是针对某个 target 的
5.1 plugin
plugin 指定在安装过程中使用的插件和插件的参数
5.2 pre_install
pre_install 允许你在pod库下载完成之后,安装之前,执行修改
5.3 pre_integrate
pre_integrate 允许你在工程写入磁盘之前做修改
5.4 post_install
post_install允许你在生成Xcode project写入磁盘之前做最后的修改
5.5 post_integrate
post_integrate 允许你在工程写入磁盘之后,做修改
最后更新于