I\'d like to know whether my app is being run on device or simulator at run time. Is there a way to detect this?
Reason being to test bluetooth api with simulator:
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"));
TARGET_IPHONE_SIMULATOR is defined on the device (but defined to false). and defined as below
#if TARGET_IPHONE_SIMULATOR
NSString * const DeviceMode = @"Simulator";
#else
NSString * const DeviceMode = @"Device";
#endif
Just use DeviceMode
to know between device and simulator