반응형
앱이 기기 또는 시뮬레이터에서 실행 중인지 프로그래밍 방식으로 감지
내 앱이 런타임에 디바이스 또는 시뮬레이터에서 실행되고 있는지 알고 싶습니다. 이것을 감지하는 방법이 있습니까?
시뮬레이터로 블루투스 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
참고 당신은 안하시기 바랍니다 ifdef
에 TARGET_IPHONE_SIMULATOR
항상 하나에 정의되기 때문에 1
나 0
.
TARGET_IPHONE_SIMULATOR 전 처리기 매크로를 사용하여 장치와 시뮬레이터 대상을 구분할 수 있습니다 .
XCode 9.3+에서 Swift
#if targetEnvironment(simulator)
//Simulator
#else
//Real device
#endif
특정 장치 유형에 대해 코딩하는 데 도움이됩니다.
아래 코드를 사용하십시오.
#if targetEnvironment(simulator)
// iOS Simulator
#else
// Device
#endif
에 대한 작품 Swift 4
과Xcode 9.4.1
반응형
'programing tip' 카테고리의 다른 글
자바 HashSet 대 HashMap (0) | 2021.01.10 |
---|---|
설치된 Android 패키지 이름을 기반으로 의도 선택기의 사용자 지정 필터링 (0) | 2021.01.10 |
런타임에 DLL 경로 가져 오기 (0) | 2021.01.10 |
django-rest-framework serializer로 외래 키 값 검색 (0) | 2021.01.10 |
호스트에서 Docker 컨테이너의 웹 서버에 액세스하는 방법 (0) | 2021.01.10 |