| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> xcconfig文件指导 -> 正文阅读 |
|
[移动开发]xcconfig文件指导 |
xcconfig Build configuration对应一个xcconfig文件,通过这个文件可以不打开xcode达到修改build configuration的目的。 1、语法
2、变量赋值(1)覆盖通过在 xcconfig 文件中重新分配该变量的值,可以覆盖在项目或目标级别上设置的构建设置变量。如下面设置,-ObjC 值将被新值 -framework Security 覆盖。
(2)继承可以使用$(inherited)使用已经存在的值,例如下面的设置,编译完成之后OTHER_LDFLAGS的值就是-ObjC -framework Security
关于变量赋值的优先级问题,可以参考Build Setting Inheritance. 3、条件变量除了常规变量分配之外,如果满足一组条件,我们还可以给变量赋值。 例如,根据您正在构建的操作系统版本更改使用的链接器标志。 条件的值检查支持通配符*来进行求值。需要注意的是,条件赋值优先于其他赋值。 例如:
如果target在iOS和mac上都可以运行,那么FOO的设置,在不同的机型上运行的值不同,如下
注意:还可以多个条件组合结合来赋值,例如
(1)SDK sdk条件变量的分配基于$(SDKROOT)的值来操作
(2)Arch arch条件变量的设置基于$ (CURRENT_ARCH)来自于 $ (ARCH)
(3)config configuration条件变量的设置基于$(configuration),还可以结合[SDK=*]或者[arch=*]来设置值,例如下面
4、变量替代给变量赋值可以直接使用值设置,也可以使用其他变量来赋值(一般用于比较复杂的条件变量),例如下面使用变量赋值的方式
例如,有一个工程里面有一个app 的target和一个unit测试的target,你想做到在编译的时候改变target和unit target的版本号,可以创建两个单独的xcconfig,一个是taget的,一个是unit target的,另外也可以基于一个变量替换给变量赋值
Xcode 将通过首先解析 注意:有一种方法可以解决无效字符名称的限制。如果在 Xcode 项目文件中编辑 project.pbxproj 文件并通过将名称括在双引号中向相关 XCBuildConfiguration 对象添加新值,则变量将注册为有效并显示在“用户定义”设置部分下Xcode 编辑器。虽然这些设置是可见的并且可用于替换项目或 xcconfig 文件中其他地方的值,但这是不支持的。使用包含无效字符的名称设置将无法正确导出以用于构建系统的其他部分。 5、Build Setting的继承xcode将build Settings设置为不同的level,在构建的时候从build Settings中获取单个的解析值,每个构建设置变量的值都是从上一级继承而来。 继承顺序按照下面流程进行
值的设置按照下面的流程
例如,在project文件里面target里定义PRODUCT_NAME是MyApp,工程里面定义了一xcconfig,如下
继承只在不同的level之间起作用,在同一级别执行的变量赋值将覆盖之前的赋值。 不能在 xcconfig 文件中使用 $(inherited) 从导入的 xcconfig 文件中获取为变量分配的值。 要使用该值,您必须使用单独的名称并在赋值中引用这些变量。 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 9:34:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |