我在我的项目中创建了多个目标。现在我计划将字符串
UUID
添加到所有目标 GCC_PREPROCESSOR_DEFINITIONS 又名预处理器宏。
我会将其添加到 Alpha、Beta、Lite 和 Prod 中。并且根据UUID字符串我可以知道哪个变体正在运行并使用相应的配置来动态处理
对于 Target1,我想添加
UUID="<UUID for Target1>"
,我将在每个目标中添加 4 个 uuid。
现在我有两个挑战 -
对于第一个选项,我在互联网上进行了搜索,但找到了添加 int 值的解决方案,并在检索值时使用 if elif 和 else 在 swift 和 Objective-C 中进行检查
但是我想添加一个
string value
并且在检索时我想将该值分配给我的本地 swift 变量并使用该 uuid。
如何将字符串值从预处理器宏检索到 Swift varibale?
可能是一个基本问题,但我没有找到任何相关内容。
它很耐用,但是我们需要OC的帮助,因为swift的Marco很弱。
S_UUID="2EBEA32B-60AE-48FA-90E1-686DD83512DE"
我添加了
S_
前缀以防止符号与系统符号冲突。
//turns x into a string literal
#define STRINGIZE(x) #x
//uses STRINGIZE(x) to turn the value of x into a string.
#define STRINGIZE_VALUE_OF(x) STRINGIZE(x)
NSString *uuid = @STRINGIZE_VALUE_OF(S_UUID);
我已经创建了POC项目here,它有在swift中使用检索到的UUID的代码。