如何在iOS项目Swift代码中访问Build Settings自定义设置my_name的值?
嘿,这个需求我之前做项目时刚好实现过,给你两种靠谱的方法,按需选就行:
方法一:通过Info.plist桥接(推荐,兼容性好)
这是最常用也最稳妥的方式,因为Swift代码没法直接读取Build Settings里的自定义变量,得通过Info.plist做一层中转:
- 打开项目的
Info.plist文件,右键选择「Add Row」 - 添加一个自定义键(比如叫
MyAppName,名字随便取,自己能认就行),把它的Value设置为$(my_name)——这里的my_name就是你在User-Defined Settings里定义的变量名,Build的时候Xcode会自动把这个占位符替换成实际值 - 回到Swift代码里,通过Bundle读取这个值:
if let myName = Bundle.main.infoDictionary?["MyAppName"] as? String { print("获取到的my_name值:\(myName)") // 这里就可以用myName变量做你需要的操作了 }
方法二:通过Swift编译宏直接注入
如果你的my_name是纯文本、没有特殊字符(比如空格、引号),也可以用编译宏的方式直接把值注入到代码里:
- 打开项目的Build Settings,找到「Other Swift Flags」(在Swift Compiler - Custom Flags分类下)
- 添加一行编译参数:
-D MY_NAME=\"$(my_name)\"——注意这里的引号要转义,不然Xcode会解析出错 - 之后在Swift代码里就可以直接用
MY_NAME这个常量了:
let myName = MY_NAME print("获取到的my_name值:\(myName)")
⚠️ 小提醒:方法二更适合简单字符串,如果my_name里有特殊字符(比如空格、中文),还是用方法一更稳妥,避免编译报错或者取值异常。
内容的提问来源于stack exchange,提问作者Leem.fin
相关产品推荐
相关产品推荐

