Xcode 配置文件xcconfig

2018-08-01  本文已影响439人  SamCheck

TARGETS:

  • TARGETS:定义了生成的唯一的product,PROJECT会包含一个或者多个TARGETS,每一个 TARGET将会产出一个product。TARGETS将构建该 product 所需的文件和处理这些文件所需的指令集,并且将这些指令集整合进编译器中。
  • 构建product的指令集在TARGETS 中的build settingsbuild 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.png

xcconfig 使用

语法

  • 没有多行注释
  • 单行注释以//开头。
  • #include 开头,后面添加文件路径。#include "Debug.xcconfig"
  • 多层路径的#include:#include "<DEVELOPER_DIR>/Makefiles/CoreOS/Xcode/BSD.xcconfig"
  • 开始以_、大写字母或者小写字母,可以含有:_0~9a~zA~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

上一篇下一篇

猜你喜欢

热点阅读