programing

시뮬레이터의 Xcode 오류: 이 플랫폼에서는 MGIsDeviceOfType이 지원되지 않습니다.

javamemo 2023. 9. 12. 19:47
반응형

시뮬레이터의 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은 이 플랫폼에서 지원되지 않습니다.이경우MGIsDeviceOneOfTypeMobileGestalt 라이브러리의 메서드/속성입니다.

시뮬레이터 버전을 확인하는 대신 시뮬레이터의 기능을 직접 조회하는 별도의 선택기가 있습니다.대부분의 메시지는 시뮬레이터 버전과 Xcode 버전 및/또는 시뮬레이터에서 지원되지 않는 API 간의 비호환성을 나타냅니다.

프로젝트 쓰레기를 비활성화하여 폐기에 성공했습니다.

<프로젝트명>->Scheme->Edit Scheme로 이동한 다음 Run(왼쪽 메뉴)으로 이동하고 다음 환경 변수를 추가합니다.

이름:OS_ACTIVE_MODE, : 비활성화

enter image description here

나의 경우: 앱 대리인에게 방법을 확인합니다 - 실행을 완료했습니다.제가 개인적으로 일을 처리했는데 실수가 났습니다."프라이빗"을 제거한 후에는 모든 것이 정상적으로 작동합니다.

방금 Xcode 10 Beta를 설치했는데 똑같은 문제가 생겼습니다.Xcode 9.4.1을 실행하면 문제가 사라집니다.

이 오류는 시뮬레이터에서 테스트/디버깅할 때만 발생합니다.

시뮬레이터는 새로울수록 좋습니다.

사례: 시뮬레이터 아이폰 8을 실행하는데 디버거에서 이 메시지를 받았습니다.

해결책:디버거에 오류 메시지가 없는 새로운 시뮬레이터로 변경했습니다.

Xcode 10.0에서 GitHub의 일부 프로젝트를 열 때 이 문제가 발생했습니다.

실용적인 해결책은 '프로그램 실행 계속'을 여러 번 누르고 예외 중단점을 비활성화하는 것이었습니다.분명히 예외는 회복 가능했습니다.

그것은 실제적인 해결책은 아니지만, 그 시점에서 저는 충분히 좋았습니다.

제 경우에는 타겟의 배포 목표가 iOS 8에 있었습니다.iOS 10.3으로 밀어 올리자 시뮬레이터와 기기 모두 정상적으로 작동했습니다.

Changing the deployment target to fix libMobileGestalt error

저는 이 문제를 보고 있습니다.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 InterfaceCDVLaunchScreen(CDVLaunchScreen)으로 이동하여 동일한 작업을 수행합니다.general > App Icons and Launch Images > Launch Screen FileCDVLaunchScreen에도 적용됩니다.

저는 Ionic 출신이므로 Swift/Objective-C에서 개발하는 사람들에게는 문제가 되지 않을 수 있습니다.

최근에 Xcode로 업데이트 했습니다.10.2그리고 이전 버전에서 생성된 프로젝트를 실행하려고 하면 동일한 오류가 발생했습니다.

Xcode를 업데이트하기 전에 시뮬레이터가 실행되고 있는 것이 문제였습니다.

솔루션은 Simulator를 종료하고 다시 시작하여 새로운 변경 사항을 얻을 수 있도록 하는 것이 매우 간단했습니다.시뮬레이터의 모델(아이폰SE나 아이폰X)은 중요하지 않다고 생각합니다.시뮬레이터를 다시 시작하기만 하면 새로운 업데이트가 적용됩니다.

Xcode와 simulator 둘 다 그만두고 Mac을 다시 시작하는 것을 추천합니다.

전화해서 이 오류가 발생했습니다..sync교착 상태를 야기한 메인 큐에서 (DispatchQueue.main.sync {}). 전화하려고 했던 것입니다..async.

제 프로젝트 안에 있는 json 파일을 읽으려고 할 때 이 오류가 발생했고 이 오류로 인해 0이 반환되었습니다.

폰트 이름을 복사한 후 데이터를 받고 오류를 수정한 후 폰트 이름에 json 파일이 폰트 이름을 보유하고 있어 철자 오류가 발생하여 0이 되었습니다.

위에 제시된 거의 모든 솔루션을 시도했지만 아무 것도 작동하지 않았습니다. 따라서 인내심을 가지고 디버그하면 어떤 것이 이 오류를 유발하는지 알 수 있고 좋지 않은 시기에 xcode가 우리 삶에서 재생될 것입니다 :)

저도 같은 문제에 직면했지만 아래와 같은 문제를 성공적으로 해결했습니다.

  1. 정지 시뮬레이터,
  2. Xcode 종료,
  3. Xcode와 시뮬레이터를 다시 엽니다.

도움이 되었으면 좋겠습니다.

언급URL : https://stackoverflow.com/questions/50701321/xcode-error-on-simulator-mgisdeviceoneoftype-is-not-supported-on-this-platform

반응형