Active Compilation Conditions for Xcode
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 -D
like -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.
Usage
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