JHHK

欢迎来到我的个人网站
行者常至 为者常成

xcconfig文件

目录

xcconfig指南

语法

xcconfig文件的语法比较简单,每个配置文件都由一系列键值分配组成,这些键值分配具有以下语法:

1 BUILD_SETTING_NAME = value

注释

xcconfig文件只有一种注释方式//

include导入其它设置

在创建 xcconfig 文件的时候,可以根据需求,创建多个.也就意味着,可以通过 include 关键字导入其他的 xcconfig 内的配置.通过 include 关键字后接上双引号:

1 #include "Debug.xcconfig"

在搜索引入的文件时,如果是以/开头,代表绝对路径,例如:

//表示确切的文件位置
#include "/Users/ws/Desktop/code/LoginApp/Pods/Target Support Files/Pods-LoginApp/Pods-LoginApp.debug.xcconfig"

或者通过相对路径,以${SRCROOT} 路径为开始:

#include "Pods/Target Support Files/Pods-LoginApp/Pods-LoginApp.debug.xcconfig"

变量

变量定义,按照OC命名规则,仅由大写字母,数字和下划线组成,原则上大写,也可以不.字符串可以是""也可以是'号.

变量有三种特殊情况:

1 在 xcconfig 中定义的变量与 Build Settings 的一致,那么会发生覆盖.可以通过 $(inherited) 让当前变量继承变量原有值.例如:

1 OTHER_LDFLAGS = -framework SDWebImage
2 OTHER_LDFLAGS = $(inherited) -framework AFNetworking
3 // OTHER_LDFLAGS = -framework SDWebImage -framework AFNetworking

注意:有部分变量不能通过 xcconfig 配置到 Build Settings 中,例如:配置 PRODUCT_BUNDLE_IDENTIFIER 不起作用.

2 引用变量,$()${} 两种写法都可以:

1 VALUE=Cat
2 TEACHER=$(VALUE)-${VALUE}

3 条件变量,根据 SDK , Arch , Configration 对设置进行条件化,例如:

1 // 指定`Configration`是`Debug`
2 // 指定`SDK`是模拟器,还有iphoneos* , macosx*等
3 // 指定生效架构为`x86_64`
4 OTHER_LDFLAGS[config=Debug][sdk=iphonesimulator*[arch=x86_64]= $(inherited) -framework "Cat"

注意:在Xcode 11.4 及以后版本,可以使用 default ,来指定变量为空时的默认值:

$(BUILD_SETTING_NAME:default=value)

优先级

优先级(由高到低)

1 手动配置 Target Build Settings

2 Target 中配置的 xcconfig 文件

3 手动配置 Project Build Settings

4 Project 中配置的 xcconfig 文件


行者常至,为者常成!





R
Valine - A simple comment system based on Leancloud.