前言
学如逆水行舟,不进则退。共勉!!!
最近项目都搞完了,比较轻松,闲来无事,分享一份xcconfig编写指南吧。希望给需要的人,提供一点小小的帮助。不要忘记点赞关注就好。嘿嘿!!!废话不多说,直接干活。
xcconfig指南
首先我们来说说它的语法吧,其实xcconfig文件的语法是非常简单的,每个配置文件都由一系列键值分配组成,这些键值分配具有以下语法:
1.BUILD_SETTING_NAME = value
注释
xcconfig⽂件只有⼀种注释⽅式\。
include导⼊其他设置
在创建xcconfig⽂件的时候,可以根据需求,创建多个。也就意味着,可以通过include关键字导⼊其他的xcconfig内的配置。通过include关键字后接上双引号:
1.#include "Debug.xcconfig"
在搜索引⼊的⽂件时,如果是以/开头,代表绝对路径,例如:
1// 表示确切的⽂件位置
2#include "/Users/ws/Desktop/VIP课程/第⼀节、符号与链接/强化班第⼀节课资料/
完成代码/LoginApp-冲突/Pods/Target Support Files/Pods-LoginApp/Pods
LoginApp.debug.xcconfig"
或者通过相对路径,以${SRCROOT}路径为开始:
1#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,来指定变量为空时的默认值:
1$(BUILD_SETTING_NAME:default=value)
优先级(由高到低):
- ⼿动配置Target Build Settings
- Target中配置的xcconfig⽂件
- ⼿动配置Project Build Settings
- Project中配置的xcconfig⽂件
最后
Xcode Build Settings对应的xcconfig变量: Xcode Build Settings
讲到这里不知各位可否听懂,小弟已经尽力。在最后求一波关注和点赞。小弟混迹iOS开发多年,如果你还需iOS资料请点击下方领取。希望能给你提供小小帮助。
iOS资料|下载地址