Swift:多目标处理:宏不起作用
Swift: Multiple targets handling: macros not working
来自参考 and https://www.appcoda.com/using-xcode-targets/
我创建了三个目标,每个目标都有不同的包 ID 和应用程序图标。我还在 "Other swift flags" - > 自定义 swift 标志部分
添加了不同的标志
喜欢
对于我添加的第一个目标 "-DGOLD" ,
对于第二个目标,我添加了 "-DSILVER" 和
我添加的第三个目标 "-DPLATINUM"。
在AppDelegate中我写了一段代码
#if GOLD
print ("Gold")
#elseif SILVER
print ("Silver")
#else
print ("Platinum")
#endif
仅供参考,I am using Xcode 8.3
我试图运行第一个目标,我总是得到"Platinum"。请告诉我如何正确获取标志
对于 Xcode 8 及更高版本,使用 Active Compilation Conditions Build settings / Swift compiler - Custom flags 中的设置。
这是用于将条件编译标志传递给 Swift 编译器的新构建设置。
只需添加这样的标志:GOLD
、SILVER
等,无需 -D 等。
然后用这样的编译条件检查它:
#if GOLD
//
#elseif SILVER
//
#else
//
#endif
我正在与 Xcode 9 合作。
我遇到了同样的问题,花了几个小时寻找答案,终于找到了解决方案。
在每个目标中,Build Settings -> Other Swift Flags,我添加了这样的想要的标志:
目标 1 -> -DTARGET1
目标 2 -> -DTARGET2
然后在我的代码中使用:
#if TARGET1
//
#elseif TARGET2
//
#endif
来自参考
我创建了三个目标,每个目标都有不同的包 ID 和应用程序图标。我还在 "Other swift flags" - > 自定义 swift 标志部分
添加了不同的标志喜欢
对于我添加的第一个目标 "-DGOLD" , 对于第二个目标,我添加了 "-DSILVER" 和 我添加的第三个目标 "-DPLATINUM"。
在AppDelegate中我写了一段代码
#if GOLD
print ("Gold")
#elseif SILVER
print ("Silver")
#else
print ("Platinum")
#endif
仅供参考,I am using Xcode 8.3
我试图运行第一个目标,我总是得到"Platinum"。请告诉我如何正确获取标志
对于 Xcode 8 及更高版本,使用 Active Compilation Conditions Build settings / Swift compiler - Custom flags 中的设置。
这是用于将条件编译标志传递给 Swift 编译器的新构建设置。
只需添加这样的标志:GOLD
、SILVER
等,无需 -D 等。
然后用这样的编译条件检查它:
#if GOLD
//
#elseif SILVER
//
#else
//
#endif
我正在与 Xcode 9 合作。 我遇到了同样的问题,花了几个小时寻找答案,终于找到了解决方案。 在每个目标中,Build Settings -> Other Swift Flags,我添加了这样的想要的标志:
目标 1 -> -DTARGET1
目标 2 -> -DTARGET2
然后在我的代码中使用:
#if TARGET1
//
#elseif TARGET2
//
#endif