Xcode 配置文件xcconfig
2018-08-01 本文已影响439人
SamCheck
TARGETS:
- TARGETS:定义了生成的唯一的product,PROJECT会包含一个或者多个TARGETS,每一个 TARGET将会产出一个product。TARGETS将构建该 product 所需的文件和处理这些文件所需的指令集,并且将这些指令集整合进编译器中。
- 构建product的指令集在TARGETS 中的
build settings
和build phases
中以表格的方式展示,你可以进行查看和编辑。A target inherits the project build settings, but you can override any of the project settings by specifying different settings at the target level.
TARGET 中的Build Settings
参数继承自 PROJECT 的Build Settings
, 但是你可以在 TARGET 中修改任意Build Settingss->Level
来重写 PROJECT 的Build Settings
。- TARGETS 依赖:如果一个TARGETS生产的product需要依赖另外一个TARGETS,可以在
Build Phasess->Target Dependencies
。
PROJECT:
- PROJECT 是一个仓库,里面包含了所有的代码文件、资源文件和可以编译一个或者多个product的信息。
- PROJECT 包含了一个或者多个TARGETS。
- PROJECT 为其拥有的所有 TARGETS 定义了默认的
Build Settings
。
Build Settings:
Build Settings
中包含了 product 生成过程中所需的参数信息。
可以在 PROJECT->Build Settings->Level
层和 TARGETS->Build Settings->Level
层指定 Build Settings
。
PROJECT 的 Build Settings
适用于 PROJECT 中的所有TARGETS,当TARGETS重写了Build Settings
,编译是会以TARGETS中的Build Settings
为准。
导出项目中所有的Build Settings:
$ cd 项目的根目录
$ xcodebuild -list
终端执行的命令结果.png
$ xcodebuild -scheme "runtime_app" -showBuildSettings >> mynew.xcconfig
mynew中含有Build Settings的所有参数.png
删除第一行的说明.png
创建
image.pngxcconfig 使用
语法
- 注释:
- 没有多行注释
- 单行注释以
//
开头。
- 包含语句:
- 以
#include
开头,后面添加文件路径。#include "Debug.xcconfig"
- 多层路径的#include:
#include "<DEVELOPER_DIR>/Makefiles/CoreOS/Xcode/BSD.xcconfig"
- 变量:
- 开始以
_
、大写字母或者小写字母,可以含有:_
、0~9
、a~z
、A~Z
。- 在两个变量名或者变量与值之间使用
=
。
- 变量分配
- 如果想使用变量默认值,就不用在此变量的
=
后面添加任何值。
- 重写
// Variable set in the project file
OTHER_LDFLAGS = -ObjC
// lib.xcconfig
OTHER_LDFLAGS = -framework Security
编译时,OTHER_LDFLAGS 会是-framework Security
,-ObjC 会被-framework Security 重写。
- 继承
// Variable set in the project file
OTHER_LDFLAGS = -ObjC
// lib.xcconfig
OTHER_LDFLAGS = $(inherited) -framework Security
编译时,OTHER_LDFLAGS 会是-ObjC -framework Security
思维扩展
怎么通过脚本修改,build setting 中的配置数
参考资料
Xcode使用xcconfig文件配置环境
Using xcconfig files for your XCode Project
环境变量配置
The Unofficial Guide to xcconfig files