iOS: optional code fragments for debug builds

14.4k Views Asked by At

for my App I'd like to have a debug view that I want to have only in debug-builds and not in release builds. I don't want to change my code though. Thats why i am wondering if I can check some compiler flag if this is a release build and exclude some code that i only want to have for debug builds.

3

There are 3 best solutions below

3
On BEST ANSWER

In your projects build settings, look for the preprocessor defines section, in there you can define a variable in your debug build only, such as DEBUG=1, and then use this in your code:

#if DEBUG
    NSLog(@"This will only print in debug!");
#endif

Just make sure in your release configuration, that same define is set to 0 in the same location in your build settings

2
On

Check your projects build settings for debug to ensure that 'DEBUG' is being set - Apple gives you this for free - do this by selecting the project and clicking on the build settings tab. Search for 'DEBUG' and look to see if indeed DEBUG is being set.

Build Settings tab of my project settings

then conditionally code for DEBUG in your source files

#ifdef DEBUG

// Something to log your data here or even add a whole subview to see it on the device

#else

// 

#endif
0
On

In addition to the build setting explained by Damo, there is an equivalent Build Setting which I have seen used and also works. In Other C Flags (OTHER_CFLAGS), add -DDEBUG to the Debug configuration.