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

In Swift you can still use the “#if/#else/#endif” preprocessor macros (although more constrained), as per Apple docs. Here’s an example:

#if DEBUG
    let a = 2
#else
    let a = 3
#endif

Now, you must set the “DEBUG” symbol elsewhere, though. Set it in the “Swift Compiler – Custom Flags” section, “Other Swift Flags” line. You add the DEBUG symbol with the -D DEBUG entry.

(Build Settings -> Swift Compiler – Custom Flags)
enter image description here

As usual, you can set a different value when in Debug or when in Release.

I tested it in real code; it doesn’t seem to be recognized in a playground.

Leave a Comment