Ответ 1
#if !(TARGET_IPHONE_SIMULATOR)
или, альтернативно,
#if (TARGET_OS_IPHONE)
сообщит вам, что вы работаете на устройстве. Чтобы он работал, вы должны
#include "TargetConditionals.h"
который вы можете найти здесь.
Есть ли способ, который я могу условно скомпилировать в своем приложении, основываясь на том, строю ли я для симулятора или устройства? (Мое приложение подключается к внешнему серверу: если я запущен на устройстве, я хочу подключиться к localhost, если я запущен на устройстве, я хочу перейти на мой производственный сервер.)
Я ищу некоторую переменную #ifdef, которую я могу обнаружить, или даже что-то во время выполнения... не имеет значения.
Спасибо.
#if !(TARGET_IPHONE_SIMULATOR)
или, альтернативно,
#if (TARGET_OS_IPHONE)
сообщит вам, что вы работаете на устройстве. Чтобы он работал, вы должны
#include "TargetConditionals.h"
который вы можете найти здесь.
Я создал макрос, в котором вы можете указать, какие действия вы хотите выполнять в круглых скобках, и эти действия будут выполняться только в том случае, если имитируется устройство.
#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"));