시뮬레이터의 Xcode 오류: 이 플랫폼에서는 MGIsDeviceOfType이 지원되지 않습니다.
저는 여러 개의 UI 레이블이 포함된 단일 뷰의 아주 간단한 애플리케이션을 가지고 있습니다.Simulator에서 실행하면 Xcode 콘솔이 다음 오류를 반환합니다.
libMobileGestaltMobileGestalt.c:875: MGIsDeviceOfType이 이 플랫폼에서 지원되지 않습니다.
시뮬레이터 자체가 흰색 화면을 보여줄 뿐입니다.저도 같은 흰색 화면의 개발자 기기에서 실행해 보았습니다.문서를 검색했지만 다음에 대한 참조를 찾을 수 없습니다.MGIsDeviceOneOfType
. 애플리케이션은 macOS 10.14의 Xcode 10 베타로 스위프트로 작성되어 있습니다.나는 아이폰 7-X 시뮬레이터에서 실행을 시도하고 있고 개발 아이폰 7에서도 실행을 시도하고 있는데 모두 대상 소프트웨어(12.0)를 실행하고 있습니다.
모바일 게스탈트
libMobileGestalt.dylib은 iOS의 모든 속성에 대한 중앙 저장소를 제공합니다.이것은 OS X의 게슈탈트와 유사할 수 있는데, 이것은 다음의 일부입니다.CoreServices
. OS X의 Gestalt는 Gestalt Manager를 예로 들어 문서화되어 있으며 10.8에서 더 이상 사용되지 않습니다.모바일 게스탈트는 개인 도서관이기 때문에 애플이 전혀 문서화하지 않았습니다.
MobileGestalt를 사용하면 여러 시뮬레이터에서 호환되거나 호환되지 않는 시스템 속성을 테스트할 수 있습니다.
의 많은 은 /i에합니다.OS는 /usr/lib/libMobileGestalt.dylib의 모바일Gestalt.dylib의 모바일Gestalt입니다.된 API는 있으며은인에만는플된다크고e다고t을크플된i은s,는'인istsfewasyedcvdMG
예:를 API사MGIsDeviceOneOfType
.
모든 개인 프레임워크 및 라이브러리와 마찬가지로 iOS 파일 시스템에서 MobileGestalt를 찾으면 /System/Library/Caches/... 등에 사전 연결되어 있습니다.해킹과 펜 테스트를 좋아한다면 도구를 사용하여 추출할 수 있습니다.
MobileGestalt는 시스템의 다양한 측면에 대해 약 200개 정도의 쿼리를 제공합니다.여기 몇 개 있습니다.
libMobileGestalt.dylib
//Answers to MG queries
MGCopyAnswer(@"5MSZn7w3nnJp22VbpqaxLQ");
MGCopyAnswer(@"7mV26K/1a+wTtqiunvHMUQ");
MGCopyAnswer(@"BasebandAPTimeSync");
MGCopyAnswer(@"BasebandPostponementStatus");
MGCopyAnswer(@"BasebandPostponementStatusBlob");
MGCopyAnswer(@"BasebandSecurityInfoBlob");
MGCopyAnswer(@"BasebandStatus");
MGCopyAnswer(@"BuildVersion");
MGCopyAnswer(@"CoreRoutineCapability");
MGCopyAnswer(@"DeviceClass");
MGCopyAnswer(@"DeviceClassNumber");
MGCopyAnswer(@"DeviceName");
MGCopyAnswer(@"DeviceSupports1080p");
MGCopyAnswer(@"DeviceSupports720p");
MGCopyAnswer(@"DiskUsage");
MGCopyAnswer(@"GSDeviceName");
MGCopyAnswer(@"HWModelStr");
MGCopyAnswer(@"HasBaseband");
MGCopyAnswer(@"InternalBuild");
MGCopyAnswer(@"InverseDeviceID");
MGCopyAnswer(@"IsSimulator");
MGCopyAnswer(@"MLBSerialNumber");
MGCopyAnswer(@"MaxH264PlaybackLevel");
MGCopyAnswer(@"MinimumSupportediTunesVersion");
MGCopyAnswer(@"PasswordConfigured");
MGCopyAnswer(@"PasswordProtected");
MGCopyAnswer(@"ProductType");
MGCopyAnswer(@"ProductVersion");
MGCopyAnswer(@"RegionCode");
MGCopyAnswer(@"RegionalBehaviorNTSC");
MGCopyAnswer(@"RegionalBehaviorNoPasscodeLocationTiles");
MGCopyAnswer(@"ReleaseType");
MGCopyAnswer(@"SIMStatus");
를 들어, Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ AirplaneMode
,MobileEquipmentIdentifier
기타, 기타.
MobileGestalt는 Ostype Selector 코드 테이블을 유지합니다.예: libMobileGestaltMobileGestalt.c:890: MGIsDeviceOfType은 이 플랫폼에서 지원되지 않습니다.이경우MGIsDeviceOneOfType
는 MobileGestalt 라이브러리의 메서드/속성입니다.
시뮬레이터 버전을 확인하는 대신 시뮬레이터의 기능을 직접 조회하는 별도의 선택기가 있습니다.대부분의 메시지는 시뮬레이터 버전과 Xcode 버전 및/또는 시뮬레이터에서 지원되지 않는 API 간의 비호환성을 나타냅니다.
프로젝트 쓰레기를 비활성화하여 폐기에 성공했습니다.
<프로젝트명>->Scheme->Edit Scheme로 이동한 다음 Run(왼쪽 메뉴)으로 이동하고 다음 환경 변수를 추가합니다.
이름:OS_ACTIVE_MODE, 값: 비활성화
나의 경우: 앱 대리인에게 방법을 확인합니다 - 실행을 완료했습니다.제가 개인적으로 일을 처리했는데 실수가 났습니다."프라이빗"을 제거한 후에는 모든 것이 정상적으로 작동합니다.
방금 Xcode 10 Beta를 설치했는데 똑같은 문제가 생겼습니다.Xcode 9.4.1을 실행하면 문제가 사라집니다.
이 오류는 시뮬레이터에서 테스트/디버깅할 때만 발생합니다.
시뮬레이터는 새로울수록 좋습니다.
사례: 시뮬레이터 아이폰 8을 실행하는데 디버거에서 이 메시지를 받았습니다.
해결책:디버거에 오류 메시지가 없는 새로운 시뮬레이터로 변경했습니다.
Xcode 10.0에서 GitHub의 일부 프로젝트를 열 때 이 문제가 발생했습니다.
실용적인 해결책은 '프로그램 실행 계속'을 여러 번 누르고 예외 중단점을 비활성화하는 것이었습니다.분명히 예외는 회복 가능했습니다.
그것은 실제적인 해결책은 아니지만, 그 시점에서 저는 충분히 좋았습니다.
제 경우에는 타겟의 배포 목표가 iOS 8에 있었습니다.iOS 10.3으로 밀어 올리자 시뮬레이터와 기기 모두 정상적으로 작동했습니다.
저는 이 문제를 보고 있습니다.Xcode 10.1 사용.새 프로젝트를 만들었습니다. 흰색 화면을 표시하는 것 외에는 아무것도 수행하지 않습니다.구형 기기의 시뮬레이터에 표시되는 것을 발견했습니다.예를 들어 아이패드 프로(12.9인치)와 아이패드 프로(12.9인치)(2세대)는 문제가 있지만 아이패드 프로(12.9인치)(3세대)는 문제가 사라졌습니다.아이폰 XR 시뮬레이터에는 나타나지 않습니다.
기본적으로 짜증나는 것 같습니다.
앱에서 제공하는 글꼴이 있으면 Info.plist에 추가해야 하며 파일에 Target Membership이 선택되어 있는지 확인해야 합니다.
저도 같은 문제가 있었는데, 맵뷰가 나타나지 않는 맵킷에서는 흰색 화면과 같은 오류만 발생하여 이 플랫폼에서는 MGIsDeviceOfType이 지원되지 않습니다.
MapView 개체에 연결된 "모호한 레이아웃" 경고를 수정하여 해결했습니다.지금은 완벽하게 잘 작동하고 있고, 오류도 사라졌습니다.
이상한 오류가 발생할 때의 일반적인 방법은 다음과 같은 도움이 되었습니다.
1) 클린 프로젝트;
2) 시뮬레이터 종료;
3) 포드를 다시 설치합니다.
Xcode 10.
저는 문제의 시뮬레이터를 중심으로 하드웨어->모든 콘텐츠 및 설정 지우기를 선택했습니다.
시뮬레이터를 다시 시작한 후, 예상대로 앱을 다시 실행할 수 있었습니다.
XCode -> Preferences -> Components 모든 시뮬레이터와 체크박스를 체크하여 업데이트를 자동으로 설치한 다음 "지금 확인 후 설치"하고 업데이트하는 동안 몇 시간 동안 자리를 비웠습니다.
이제 문제는 사라졌습니다. 그래서 사실은 언급한 대로입니다.업데이트되지 않은 기존 시뮬레이터가 적용된 새로운 X 코드.
저에게 효과가 있었던 것은 그 안에서 변화하는 것이었습니다.general > Deployment Info > Main Interface
CDVLaunchScreen(CDVLaunchScreen)으로 이동하여 동일한 작업을 수행합니다.general > App Icons and Launch Images > Launch Screen File
CDVLaunchScreen에도 적용됩니다.
저는 Ionic 출신이므로 Swift/Objective-C에서 개발하는 사람들에게는 문제가 되지 않을 수 있습니다.
최근에 Xcode로 업데이트 했습니다.10.2
그리고 이전 버전에서 생성된 프로젝트를 실행하려고 하면 동일한 오류가 발생했습니다.
Xcode를 업데이트하기 전에 시뮬레이터가 실행되고 있는 것이 문제였습니다.
솔루션은 Simulator를 종료하고 다시 시작하여 새로운 변경 사항을 얻을 수 있도록 하는 것이 매우 간단했습니다.시뮬레이터의 모델(아이폰SE나 아이폰X)은 중요하지 않다고 생각합니다.시뮬레이터를 다시 시작하기만 하면 새로운 업데이트가 적용됩니다.
Xcode와 simulator 둘 다 그만두고 Mac을 다시 시작하는 것을 추천합니다.
전화해서 이 오류가 발생했습니다..sync
교착 상태를 야기한 메인 큐에서 (DispatchQueue.main.sync {}
). 전화하려고 했던 것입니다..async
.
제 프로젝트 안에 있는 json 파일을 읽으려고 할 때 이 오류가 발생했고 이 오류로 인해 0이 반환되었습니다.
폰트 이름을 복사한 후 데이터를 받고 오류를 수정한 후 폰트 이름에 json 파일이 폰트 이름을 보유하고 있어 철자 오류가 발생하여 0이 되었습니다.
위에 제시된 거의 모든 솔루션을 시도했지만 아무 것도 작동하지 않았습니다. 따라서 인내심을 가지고 디버그하면 어떤 것이 이 오류를 유발하는지 알 수 있고 좋지 않은 시기에 xcode가 우리 삶에서 재생될 것입니다 :)
저도 같은 문제에 직면했지만 아래와 같은 문제를 성공적으로 해결했습니다.
- 정지 시뮬레이터,
- Xcode 종료,
- Xcode와 시뮬레이터를 다시 엽니다.
도움이 되었으면 좋겠습니다.
언급URL : https://stackoverflow.com/questions/50701321/xcode-error-on-simulator-mgisdeviceoneoftype-is-not-supported-on-this-platform
'programing' 카테고리의 다른 글
파워쉘 앱.구성 (0) | 2023.09.12 |
---|---|
널 포인터 해제 (0) | 2023.09.12 |
T-SQL의 XML 문자열에서 속성의 큰따옴표를 피하려면 어떻게 해야 합니까? (0) | 2023.09.12 |
절대 위치 요소를 수평으로 100% 폭 디브 안에 중심을 맞추려면 어떻게 해야 합니까? (0) | 2023.09.12 |
홈브루를 사용하여 mariadb를 실행하려고 했는데 다음 오류가 발생했습니다. 부트스트랩 실패: 5: 입출력 오류 (0) | 2023.09.12 |