闲来无事写了一份 xcconfig 编写指南

👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇

前言

最近项目都搞完了,比较轻松,闲来无事,分享一份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)
优先级(由高到低):
  1. ⼿动配置Target Build Settings

  2. Target中配置的xcconfig⽂件

  3. ⼿动配置Project Build Settings

  4. Project中配置的xcconfig⽂件

最后

Xcode Build Settings对应的xcconfig变量:Xcode Build Settings[1]

参考资料

[1]

Xcode Build Settings: https://xcodebuildsettings.com

作者:iOS小王

https://juejin.cn/post/7023253414653984781

-End-

最近有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,欢迎下载!

8ab14598a965e153b5a77ccf6be9da32.png

点击👆卡片,关注后回复【面试题】即可获取

在看点这里28a5d3631bb13d2db2a7767abd757f8c.gif好文分享给更多人↓↓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值