Question

Is there any way I can conditionally compile in my app based upon whether I'm building for the simulator or the device? (My app hooks to an external server: if I'm running on the device, I want to connect to localhost; if I'm running on the device, I want to go to my production server.)

I'm looking for some #ifdef variable I can detect, or even something at runtime...doesn't matter.

Thanks.

Was it helpful?

Solution

#if !(TARGET_IPHONE_SIMULATOR)

or, alternatively,

#if (TARGET_OS_IPHONE)

will tell you if you're running on the device. In order for it to work, you must

#include "TargetConditionals.h"

file that you can find here.

OTHER TIPS

I created a macro in which you can specify which actions you want to perform inside parentheses and these actions will only be performed if the device is being simulated.

#define SIM(x) if ([[[UIDevice currentDevice].model lowercaseString] rangeOfString:@"simulator"].location != NSNotFound){x;}

This is used like this:

SIM(NSLog(@"This will only be logged if the device is simulated"));
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top