1、基本语法
BUILD SETTING NAME = value
2、注释
只有一种注释方式: \\
导入其他xcconfig
在创建xcconfig文件的时候,可以创建多个。可以通过include
关键字导入其他的xcconfig内的配置。
#include "Debug.xcconfig"
在引入文件时,如果开头是/
符号,代表绝对路径
#include "/xxxx/xxxx/xxx/Debug.xcconfig"
如果是相对路径,一般以 ${PODS_ROOT}
或者 ${SRCROOT}
开头
#include "${SRCROOT}/xxxx/xxx/Debug.xcconfig"
3、变量
变量定义,按照OC命名规则,仅由大写字母,数字和下划线组成(原则上大写,也可以不)。字符串可以是”
也可以是'
号。
变量有三种特殊情况:
- 在
xcconfig
中定义的变量与Build Settings
的一致, 那么会发生覆盖。
可以通过 $(inherited)
,让当前变量继承变量原有值。
例如:
OTHER LDFLAGS = -framework SDWebImage
OTHER LDFLAGS = $(inherited) -framework AFNetworking
//OTHER LDFLAGS = -framework SDWebImage -framework AFNetworking
注意A:有部分变量不能通过
xcconfig
配置到Build Settings
中,例如:配置PRODUCT BUNDLE IDENTIFIER
不起作用。
- 引用变量,
$()
和${}
两种写法都可以:
VALUE = Cat
TEACHER = $(VALUE)-$VALUEY
- 条件变量,根据
SDK
、Arch
和Configration
对设置进行条件化
例如:
// 指定`Configration`是`Debug
// 指定`SDK是模拟器,还有iphoneos*、macosx:*等
// 指定生效架构为x8664
OTHER_LDFLAGS [config=Debug][sdk=iphonesimulator*][arch=x86_64]=
$(inherited)-framework "Cat"
注意:在
Xcode11.4
及以后版本,可以使用defau1t
,来指定变量的默认值:
$(BUILD SETTING NAME:default=value)
4、优先级(由高到低)
- 手动配置
Target Build Settings
Target
中配置的xcconfig
文件- 手动配置
Project Build Settings
Project
中配置的xcconfig
文件Xcode Build Settings
对应的xcconfig
变量