programing tip

앱이 기기 또는 시뮬레이터에서 실행 중인지 프로그래밍 방식으로 감지

itbloger 2021. 1. 10. 16:55
반응형

앱이 기기 또는 시뮬레이터에서 실행 중인지 프로그래밍 방식으로 감지


내 앱이 런타임에 디바이스 또는 시뮬레이터에서 실행되고 있는지 알고 싶습니다. 이것을 감지하는 방법이 있습니까?

시뮬레이터로 블루투스 API를 테스트하는 이유 : http://volcore.limbicsoft.com/2009/09/iphone-os-31-gamekit-pt-1-woooohooo.html


#if TARGET_OS_SIMULATOR

//Simulator

#else

// Device

#endif

Pls는이 이전 SO 질문을 참조하십시오 .iPhone 용으로 컴파일 할 때 Xcode에서 설정하는 # 정의


괄호 안에 수행 할 작업을 지정할 수있는 매크로를 만들었으며 이러한 작업은 장치가 시뮬레이션되는 경우에만 수행됩니다.

#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"));

TARGET_IPHONE_SIMULATOR 는 장치에 정의되어 있지만 false로 정의되어 있습니다. 아래와 같이 정의

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

DeviceMode장치와 시뮬레이터 사이를 알기 위해 사용하십시오.


시뮬레이터 확인

#if TARGET_IPHONE_SIMULATOR
// Simulator
#endif

장치 확인

#if !(TARGET_IPHONE_SIMULATOR)
// Device
#endif

둘 다 확인

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

참고 당신은 안하시기 바랍니다 ifdefTARGET_IPHONE_SIMULATOR항상 하나에 정의되기 때문에 10.


TARGET_IPHONE_SIMULATOR 전 처리기 매크로를 사용하여 장치와 시뮬레이터 대상을 구분할 수 있습니다 .


XCode 9.3+에서 Swift

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

특정 장치 유형에 대해 코딩하는 데 도움이됩니다.


아래 코드를 사용하십시오.

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

에 대한 작품 Swift 4Xcode 9.4.1

참조 URL : https://stackoverflow.com/questions/5775420/programmatically-detect-if-app-is-being-run-on-device-or-simulator

반응형