xcconfig文件,允许我们通过文件的方式管理Xcode中的Build Setting配置选项。xcconfig文件是纯文本文件。

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


BUILD_SETTING_NAME = value

注释:

xcconfig文件只有一种注释方式\\。

include导入其他设置

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


#include "Debug.xcconfig"

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


// 表示确切的文件位置#include "/Users/ws/Desktop/VIP课程/第一节、符号与链接/强化班第一节课资料/完成代码/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),让当前变量继承变量原有值。例如:


OTHER_LDFLAGS = -framework SDWebImageOTHER_LDFLAGS = $(inherited) -framework AFNetworking// OTHER_LDFLAGS = -framework SDWebImage -framework AFNetworking

(滑动显示更多)

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

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


VALUE=CatTEACHER=$(VALUE)-${VALUE}

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


// 指定`Configration`是`Debug`// 指定`SDK`是模拟器,还有iphoneos*、macosx*等// 指定生效架构为`x86_64`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文件

参考资料

build setting

嗨,这里是逻辑iOS技术号:一个让知识变得感性,让学习变得轻松!活跃的技术小站,希望给你的生活与技术带来意思不一样!关注公众号,回复“   面试题”,即可领取更多大厂面试题型哦~ 小逻辑相信我们的生活不止眼前的苟且,还有我们向往的诗和大厂高薪工作~

xcconfig编写指南相关推荐

  1. 30条HTML代码编写指南 for入门者

    本文总结了30条html代码编写指南,只要在编写HTML代码的过程中牢记它们,灵活运用,你一定会写出一手漂亮的代码,早日迈入专业开发者的行列. 1. 一定要闭合HTML标签 在以往的页面源代码里,经常 ...

  2. HTML语言编写指南

    作者: 阮一峰 日期: 2009年5月17日 制作网页的第一步,就是学会编写HTML语言. HTML是一种标签语言,通过在内容上附加各种标签,达到在浏览器中正确展示的目的.正确地编写HTML,不仅是制 ...

  3. outlook html阅读,Html Email 邮件html页编写指南

    前言 写过邮件的html的童学应该都知道,邮件的html一般都用table来布局,为什么呢?原因是大多数的邮件客户端(比如Outlook和Gmail),会过滤HTML设置,让邮件面目全非. 经过多次的 ...

  4. [转] Bookmarklet(书签工具)编写指南

    为什么80%的码农都做不了架构师?>>>    作者: 阮一峰 日期: 2011年6月11日 前一段日子,我写了两个Bookmarklet----"短网址生成"和 ...

  5. 基于Asterisk的VoIP开发指南(2)——Asterisk AGI程序编写指南

    5. Asterisk AGI程序编写指南    5.1概述 很多时候,我们需要在拨号方案中做某些业务逻辑的判断或者外部数据库的查询,根据具体地需要,有几种做法: 1.使用Asterisk的通道变量. ...

  6. HTML Email 编写指南

    作者: 阮一峰 今天,我想写一个"低技术"问题. 话说我订阅了不少了新闻邮件(Newsletter),比如JavaScript Weekly.每周收到一封邮件,了解本周的大事. 有 ...

  7. python——函数(定义函数、传递实参、返回值、传递列表、传递任意数量的实参、将函数存储在模块中、函数编写指南)

    目录 定义函数 传递实参 返回值 传递列表 传递任意数量的实参 将函数存储在模块中 函数编写指南 定义函数 #------定义函数---------- def user():print('hello! ...

  8. python打包和添加数据文件_python库打包分发setup.py编写指南

    python库打包分发setup.py编写指南 python之所以强大,在于有许许多多的人贡献自己的力量,他们将自己开发的项目打包上传至pypi,这使得python社区有取之不尽用之不竭的第三方库.工 ...

  9. window批处理文件编写指南

    window批处理文件编写指南 1.注释 语法: :: 或者 rem 2.批处理命令睡眠1秒 ping -n 2 127.0.0.1>nul 或者 choice /t 2 /d y /n > ...

最新文章

  1. 收集无良医院清单的开源项目,浏览器插件自动提示无良网站!
  2. 【数字信号处理】离散时间信号 ( 模拟信号、离散时间信号、数字信号 | 采样导致时间离散 | 量化导致幅度离散 )
  3. OpenCV 霍夫圆检测
  4. sequelize 连接2个数据库_数据库激荡 40 年,NoSQL、NewSQL谁能接棒?
  5. 11部高分学科纪录片,助力孩子涨姿势拓视野~
  6. 技术实践 | ICDE2021-大规模知识图谱预训练及电商应用
  7. 信息学奥赛一本通(1043:整数大小比较)
  8. PHP与前端协作模式的理解
  9. Java多线程_复习(更新中!!)
  10. 博客园 使用锚和书签制作目录
  11. PCA、CCA、PLS
  12. 如何解决安装佳能LBP2900驱动时总是提示无法识别USB连接(附带驱动程序下载地址)
  13. html鼠标手状态,css鼠标样式cursor介绍(鼠标手型)
  14. 显示隐藏Html元素(div等)
  15. 会泡妞的程序员都是怎么撩妹子的?
  16. Latex初次使用可能用到的小细节
  17. Python基础——np.where
  18. Windows 11 下 Virtualbox 6.1.34 出现 End kernel panic - not syncing: attempted to kill the idle task
  19. 【一】1D测量 Measuring——translate_measure()算子
  20. 关于成为网络工程师后具体的工作内容的问题

热门文章

  1. 全球区块链第9周看点 | 以太坊君士坦丁堡/圣彼得堡硬分叉正式完成;纳斯达克正式上线BTC和ETH指数...
  2. is running beyond physical memory limits. Current usage: 1.0 GB of 1 GB physical memory used......
  3. CME CMS ERROR错误代码
  4. 客户端访问网站的整个流程图_如何阻止整个国家访问您的网站
  5. 【读书笔记】提高编码效率 —— 《Mac 高效开发指南》
  6. 2021新版本Nacos配置中心提示‘url‘ attribute is not specified and no embedded datasource could be configured
  7. 月球绘画软件测试,宇宙飞船简笔画:第一个登上月球的宇航员
  8. 简单的Animation实现角色行走(学习笔记)
  9. 关于软件工程----一线城市与二三线城市的区别
  10. Revit二次开发之按照标高过滤元素