Detecta mediante progtwigción si la aplicación se está ejecutando en un dispositivo o simulador

Me gustaría saber si mi aplicación se está ejecutando en un dispositivo o simulador en tiempo de ejecución. ¿Hay alguna forma de detectar esto?

La razón de ser para probar bluetooth api con simulador: http://volcore.limbicsoft.com/2009/09/iphone-os-31-gamekit-pt-1-woooohooo.html

#if TARGET_OS_SIMULATOR //Simulator #else // Device #endif 

Los pls refieren a esta pregunta anterior de SO también qué definición # define Xcode al comstackr para iPhone

Creé una macro en la que puede especificar qué acciones desea realizar dentro de paréntesis y estas acciones solo se realizarán si el dispositivo se está simulando.

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

Esto se usa así:

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

TARGET_IPHONE_SIMULATOR se define en el dispositivo (pero se define como falso). y definido como abajo

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

Solo usa DeviceMode para saber entre dispositivo y simulador

Compruebe si el simulador

 #if TARGET_IPHONE_SIMULATOR // Simulator #endif 

Verifica si el dispositivo

 #if !(TARGET_IPHONE_SIMULATOR) // Device #endif 

Verifique ambos

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

Tenga en cuenta que no debe TARGET_IPHONE_SIMULATOR en TARGET_IPHONE_SIMULATOR porque siempre se definirá a 1 o 0 .

Puede utilizar la macro del preprocesador TARGET_IPHONE_SIMULATOR para distinguir entre los dispositivos y los objectives del simulador.

De XCode 9.3+, Swift

 #if targetEnvironment(simulator) //Simulator #else //Real device #endif 

Le ayuda a codificar contra el tipo de dispositivo específico.

Use este código a continuación:

 #if targetEnvironment(simulator) // iOS Simulator #else // Device #endif 

Funciona para Swift 4 y Xcode 9.4.1

    Intereting Posts