Подтвердить что ты не робот

Программно определить, выполняется ли приложение на устройстве или симуляторе

Я хотел бы узнать, работает ли мое приложение на устройстве или симуляторе во время выполнения. Есть ли способ обнаружить это?

Причина в проверке bluetooth api с симулятором: http://volcore.limbicsoft.com/2009/09/iphone-os-31-gamekit-pt-1-woooohooo.html

4b9b3361

Ответ 2

Я создал макрос, в котором вы можете указать, какие действия вы хотите выполнять в круглых скобках, и эти действия будут выполняться только в том случае, если имитируется устройство.

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

Это используется следующим образом:

SIM(NSLog(@"This will only be logged if the device is simulated"));

Ответ 3

TARGET_IPHONE_SIMULATOR определяется на устройстве (но определяется как false). и определяется как ниже

#if TARGET_IPHONE_SIMULATOR
NSString * const DeviceMode = @"Simulator";
#else
NSString * const DeviceMode = @"Device";
#endif

Просто используйте DeviceMode, чтобы знать между устройством и симулятором

Ответ 4

Убедитесь, что симулятор

#if TARGET_IPHONE_SIMULATOR
// Simulator
#endif

Убедитесь, что устройство

#if !(TARGET_IPHONE_SIMULATOR)
// Device
#endif

Проверьте как

#if TARGET_IPHONE_SIMULATOR
// Simulator
#else
// Device
#endif

Обратите внимание, что вы не должны ifdef on TARGET_IPHONE_SIMULATOR, потому что он всегда будет определяться либо 1, либо 0.

Ответ 5

Вы можете использовать макрос препроцессора TARGET_IPHONE_SIMULATOR, чтобы различать цели устройства и имитатора.