error - nfc iphone 7 como activar
Detecta mediante programación si la aplicación se está ejecutando en un dispositivo o simulador (7)
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
De XCode 9.3+, Swift
#if targetEnvironment(simulator)
//Simulator
#else
//Real device
#endif
Le ayuda a codificar contra el tipo de dispositivo específico.
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
.
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"));
Puede utilizar la macro del preprocesador TARGET_IPHONE_SIMULATOR para distinguir entre los dispositivos y los objetivos del simulador.
Use este código a continuación:
#if targetEnvironment(simulator)
// iOS Simulator
#else
// Device
#endif
Funciona para Swift 4
y Xcode 9.4.1
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
#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 compilar para iPhone