Detectar en el proyecto de Xcode iPhone si estoy construyendo para el simulador o dispositivo?

StackOverflow https://stackoverflow.com/questions/1828482

  •  11-09-2019
  •  | 
  •  

Pregunta

¿Hay alguna manera de que pueda compilar condicionalmente en mi aplicación en base a si estoy construyendo para el simulador o dispositivo? (Mi aplicación ganchos a un servidor externo: si estoy ejecutando en el dispositivo, que quieren conectarse a localhost; si estoy ejecutando en el dispositivo, quiero ir a mi servidor de producción.)

Busco alguna variable #ifdef puedo detectar, o incluso algo en tiempo de ejecución ... no importa.

Gracias.

¿Fue útil?

Solución

#if !(TARGET_IPHONE_SIMULATOR)

o, alternativamente,

#if (TARGET_OS_IPHONE)

le dirá si se está ejecutando en el dispositivo. Para que funcione, debe

#include "TargetConditionals.h"

archivo que se puede encontrar aquí .

Otros consejos

He creado una macro en el que se puede especificar qué acciones desea realizar dentro de paréntesis, y estas acciones sólo se realizará si el dispositivo se está simulando.

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

Esto se utiliza como esto:

SIM(NSLog(@"This will only be logged if the device is simulated"));
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top