Previously, declaring conditional compilation flags was done in the
OTHER_SWIFT_FLAGS build setting. The tricky part when adding a flag was remembering to prepend
-DBETA. Forgetting the flag could lead to unexpected results or time wasted to debugging.
Enter Active Compilation Conditions.
Active Compilation Conditions
As of Xcode 8, we have the new
SWIFT_ACTIVE_COMPILATION_CONDITIONS build setting which allows us to define our flags without the need to prefix them. Under the hood, each element is passed to
swiftc prefixed with
-D 👏🏽! This matches the behavior we had with Objective-C and Preprocessor Macros.
Regardless of which setting you choose to add it to, using the flag in your Swift project is the same:
1 2 3 4 5 #if BETA let backgroundQueue = "com.company.appname.background.beta" #else let backgroundQueue = "com.company.appname.background" #endif