为什么没有设置Swift编译器标志?

时间:2015-06-11 21:19:27

标签: xcode swift

我希望某些代码只能在发布版本中执行,但是当方案配置为使用发布配置时,代码不会执行。

我错过了什么?

我在我的app delegate的didFinishLaunchingWithOptions方法中有以下内容:

#if RELEASE
    Countly.sharedInstance().startOnCloudWithAppKey(appKey)
    Crittercism.enableWithAppID(appID)
    NSLog("crash logging enabled")
#endif

目标构建设置如下所示: screenshot of the Swift Compiler - Custom Flags section in Xcode

该方案配置为在运行应用程序时使用Release配置: Screenshot of release scheme configuration in Xcode

3 个答案:

答案 0 :(得分:4)

您需要在“Swift编译器 - 自定义标志”部分,“其他Swift标志”行中明确设置预处理器标志。

请检查 -

In absence of preprocessor macros, is there a way to define practical scheme specific flags at project level in Xcode project

答案 1 :(得分:2)

看起来Swift编译器会忽略指定特定值的-D标志。如果使用-DDEBUG和-DRELEASE,它似乎可以工作。

答案 2 :(得分:0)

现在您需要设置

Active Compilation Conditions

在Swift编译器下-自定义标志

例如

活动编译条件DEV

您可以检查

#if DEV
  print("DEV mode")
#else 
  print("PROD")
#endif