闲来无事写的一份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不起作⽤。

扫描二维码关注公众号,回复: 13628735 查看本文章

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

讲到这里不知各位可否听懂,小弟已经尽力。在最后求一波关注和点赞。小弟混迹iOS开发多年,如果你还需iOS资料请点击下方领取。希望能给你提供小小帮助。

iOS资料|下载地址

猜你喜欢

转载自juejin.im/post/7023253414653984781
今日推荐