ios - kits - Error de Xcode en el simulador: MGIsDeviceOneOfType no es compatible con esta plataforma
xcode kits (16)
Acabo de instalar Xcode 10 Beta y tuve el mismo problema. Corrió Xcode 9.4.1 y el problema desapareció.
Tengo una aplicación muy simple con una sola vista, que contiene varios UILabels. Al ejecutarse en Simulator, la consola Xcode devuelve el error:
libMobileGestalt MobileGestalt.c: 875: MGIsDeviceOneOfType no es compatible con esta plataforma.
El simulador solo muestra una pantalla en blanco.
También he intentado ejecutarlo en un dispositivo desarrollador con la misma pantalla blanca.
He buscado en la documentación pero no puedo encontrar ninguna referencia a
MGIsDeviceOneOfType
.
La aplicación está escrita en Swift en Xcode 10 beta en macOS 10.14.
Estoy intentando ejecutarlo en los simuladores de iPhone 7-X, así como en un iPhone 7 de desarrollo, todos ejecutando el software de destino (12.0).
Este error solo se producirá al probar / depurar en simuladores.
Cuanto más nuevo sea el simulador, mejor.
Caso: ejecuto el simulador de iPhone 8 y recibí este mensaje en el depurador.
Solución: Cambié a un simulador más nuevo sin mensaje de error en el depurador.
Estoy viendo este problema. Utilizando Xcode 10.1. Creó un proyecto nuevo, no hace nada excepto mostrar una pantalla en blanco. Descubrió que estaba apareciendo en el simulador para dispositivos más antiguos. Por ejemplo, iPad Pro (12.9 pulgadas) y iPad Pro (12.9 pulgadas) (2ª generación) muestran el problema, pero el problema se ha ido para iPad Pro (12.9 pulgadas) (3ª generación). No aparece para simulador de iPhone XR.
Básicamente parece molesto.
Fui a XCode -> Preferencias -> Componentes Marque todos los simuladores y la casilla de verificación para instalar las actualizaciones automáticamente, y luego "verificar e instalar ahora" y se fue durante unas horas mientras estaban actualizadas.
Ahora el problema se ha ido, de hecho, es como se mencionó. Nuevo XCode con Antiguo - simuladores no actualizados.
La forma regular cuando suceden errores extraños ayudó a:
1) Proyecto limpio;
2) Apagar simulador;
3) Vuelva a instalar las vainas.
Xcode 10.
Lo que funcionó para mí fue cambiar dentro de
general > Deployment Info > Main Interface
a CDVLaunchScreen y hacer lo mismo en
general > App Icons and Launch Images > Launch Screen File
en CDVLaunchScreen también.
Vengo de Ionic, por lo que esto podría no ser un problema para aquellos que se desarrollan en Swift / Objective-C.
Me encontré con esto al abrir algún proyecto de GitHub en Xcode 10.0.
La solución pragmática fue: simplemente presione ''Continuar ejecución del programa'' varias veces y probablemente deshabilite su punto de interrupción de excepción . Al parecer la excepción era recuperable.
No es una solución real, pero fue lo suficientemente bueno para mí en ese momento.
Para mí, con el simulador en cuestión enfocado, seleccioné Hardware-> Borrar todo el contenido y la configuración.
Después de reiniciar el simulador, el lanzamiento de mi aplicación funcionó nuevamente, como se esperaba.
Recibí este error llamando a
.sync
en la cola principal, lo que provocó un interbloqueo (
DispatchQueue.main.sync {}
).
.async
llamar a
.async
.
Recientemente he actualizado a Xcode
10.2
y cuando intenté ejecutar un proyecto creado en una versión anterior, ocurrió el mismo error.
El problema era que el simulador se estaba ejecutando antes de actualizar Xcode.
La solución fue muy simple para mí salir del simulador y reiniciar para que pueda obtener los nuevos cambios. No creo que el modelo del simulador (iPhone SE o iPhone X) sea importante. Solo necesita reiniciar su simulador para que surta efecto la nueva actualización.
Recomendaría salir de Xcode y del simulador y reiniciar tu Mac.
Si tiene fuentes proporcionadas por la aplicación, debe agregarlas a Info.plist y verificar si el archivo tiene seleccionada la Membresía objetivo
Tuve el mismo problema, pero con MapKit, donde no se mostró un MapView, solo la pantalla blanca y el mismo error, MGIsDeviceOneOfType no es compatible con esta plataforma.
Se solucionó corrigiendo las advertencias de "Disposición ambigua" vinculadas al objeto MapView. Ahora está funcionando perfectamente bien, y los errores desaparecieron.
en mi caso: compruebe el delegado de su aplicación para ver el método - didFinishLaunching. Tuve privado y recibí el error. Después de quitar "privado" todo funciona bien
MobileGestalt
El
libMobileGestalt.dylib
proporciona un repositorio central para todas las propiedades de iOS.
Puede ser análogo a Gestalt de OS X, que es parte de
CoreServices
.
Gestalt de OS X está documentado, por ejemplo,
Gestalt Manager
y ha quedado en desuso a partir de 10.8.
MobileGestalt no
está documentado por Apple, ya que es una biblioteca privada.
MobileGestalt permite probar propiedades del sistema que pueden o no ser compatibles en diferentes simuladores.
Bastantes procesos y aplicaciones de sistema en iOS se basan en MobileGestalt, que se encuentra en /usr/lib/libMobileGestalt.dylib.
Es más bien una biblioteca básica, pero sus API expuestas siguen las convenciones del marco de Apple y utilizan el prefijo API
MG
por ejemplo,
MGIsDeviceOneOfType
.
Si busca MobileGestalt en el sistema de archivos iOS, no lo encontrará, como todos los marcos y bibliotecas privados, se ha enlazado previamente en /System/Library/Caches/...etc. Si le gusta el pirateo y la prueba de la pluma, puede utilizar herramientas para extraerlo.
MobileGestalt proporciona mucha información (alrededor de 200 o más consultas) sobre diversos aspectos del sistema. Aquí hay algunos.
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");
Hay cientos más, por ejemplo,
AirplaneMode
,
MobileEquipmentIdentifier
, etc.
MobileGestalt mantiene una tabla de códigos de selector OSType.
por ejemplo,
c: 890
en el mensaje:
libMobileGestalt MobileGestalt.c: 890: MGIsDeviceOneOfType no es compatible con esta plataforma.
En este caso,
MGIsDeviceOneOfType
es un método de la
biblioteca MobileGestalt
.
En lugar de verificar la versión del simulador, hay un selector separado para consultar directamente las capacidades del simulador. Lo más probable es que los mensajes indiquen incompatibilidades entre las versiones del simulador y las versiones de Xcode y / o las API no compatibles en el simulador.