Swift中添加与获取GCC_PREPROCESSOR_DEFINITIONS字符串值的方法
为多Target Swift项目添加字符串类型UUID预处理器宏并读取
一、给每个Target配置UUID预处理器宏
- 打开Xcode,选中目标Target(比如Alpha、Beta等),进入
Build Settings标签页 - 搜索
GCC_PREPROCESSOR_DEFINITIONS,分别在Debug和Release配置项中添加:
注意:这里的转义双引号APP_UUID="\"你的Target专属UUID\""\"是必须的,确保预处理器能正确解析为带双引号的字符串常量。比如Alpha Target的配置就是APP_UUID="\"123e4567-e89b-12d3-a456-426614174000\"" - 重复上述步骤,给Lite、Prod等所有Target分别设置对应的UUID值。
二、在Swift中读取UUID并赋值给本地变量
创建一个Swift文件(比如AppConfig.swift),写入以下代码:
import Foundation // 直接通过预处理器宏展开获取当前Target的UUID let appUUID: String = APP_UUID
编译后,appUUID变量就会被赋值为当前运行Target对应的UUID字符串,你可以在App生命周期初期(比如AppDelegate的application(_:didFinishLaunchingWithOptions:)方法或者SceneDelegate的scene(_:willConnectTo:options:)方法)直接使用这个变量进行动态配置。
额外提示
- 确保所有Target的宏名称统一(比如都用
APP_UUID),这样Swift代码无需针对不同Target修改 - 如果需要在代码中区分不同Target,也可以结合条件编译,比如给每个Target额外添加一个标识宏(如
ALPHA=1),再通过#if ALPHA来做分支处理,但单纯获取UUID的话,直接用统一宏展开更高效
内容的提问来源于stack exchange,提问作者mefahimrahman
相关产品推荐
相关产品推荐

