J'ai une application très simple avec une seule vue, contenant plusieurs UILabels. Lors de l'exécution dans Simulator, la console Xcode renvoie l'erreur:
libMobileGestalt MobileGestalt.c: 875: MGIsDeviceOneOfType n'est pas pris en charge sur cette plate-forme.
Le simulateur lui-même n'affiche qu'un écran blanc. J'ai également essayé de l'exécuter sur un appareil de développement avec le même écran blanc. J'ai cherché dans la documentation mais je ne trouve aucune référence à MGIsDeviceOneOfType
. L'application est écrite en Swift dans Xcode 10 beta sur macOS 10.14. J'essaie de l'exécuter sur les simulateurs iPhone 7-X, ainsi que sur un iPhone 7 de développement, tous exécutant le logiciel cible (12.0).
Réponses:
MobileGestalt
La libMobileGestalt.dylib fournit un référentiel central pour toutes les propriétés d'iOS. Cela peut être analogue à Gestalt d'OS X, qui fait partie de
CoreServices
. La Gestalt d'OS X est documentée par exemple Gestalt Manager et est obsolète à partir de la version 10.8. MobileGestalt est entièrement non documenté par Apple car il s'agit d'une bibliothèque privée.MobileGestalt permet de tester les propriétés du système qui peuvent ou non être compatibles sur différents simulateurs.
De nombreux processus système et applications sous iOS reposent sur MobileGestalt, qui se trouve dans /usr/lib/libMobileGestalt.dylib. Il s'agit plus d'une bibliothèque de base, mais ses API exposées suivent les conventions du framework Apple et utilisent le
MG
préfixe API par exempleMGIsDeviceOneOfType
.Si vous recherchez MobileGestalt sur le système de fichiers iOS, vous ne le trouverez pas - comme tous les frameworks et bibliothèques privés, il a été pré-lié dans /System/Library/Caches/...etc. Si vous aimez le piratage et les tests de stylet, vous pouvez utiliser des outils pour l'extraire.
MobileGestalt fournit de nombreuses informations - environ 200 requêtes - sur divers aspects du système. Voici quelques-uns.
Il y a des centaines d' autres , par exemple
AirplaneMode
,MobileEquipmentIdentifier
etc.MobileGestalt maintient une table des codes de sélecteur OSType. par exemple c: 890 dans le message: libMobileGestalt MobileGestalt.c: 890: MGIsDeviceOneOfType n'est pas pris en charge sur cette plate-forme. Dans ce cas, il
MGIsDeviceOneOfType
s'agit d'une méthode de la bibliothèque MobileGestalt .Au lieu de vérifier la version du simulateur, il existe un sélecteur séparé pour interroger directement les capacités du simulateur. Les messages indiquent très probablement des incompatibilités entre les versions du simulateur et les versions Xcode et / ou les API non prises en charge sur le simulateur.
la source
Je l'ai supprimé avec succès avec la désactivation de la poubelle du projet.
Allez dans < Nom de votre projet > -> Schéma -> Modifier le schéma Puis allez dans Exécuter (menu sur le côté gauche) et ajoutez la variable d'environnement suivante:
Nom : OS_ACTIVITY_MODE, valeur : désactiver
la source
dans mon cas: vérifiez votre délégué d'application pour la méthode - didFinishLaunching. J'ai eu privé et obtenir l'erreur. Après avoir supprimé "privé", tout fonctionne correctement
la source
Je viens d'installer Xcode 10 Beta et j'ai eu le même problème. Ran Xcode 9.4.1 et le problème a disparu.
la source
Cette erreur ne se produira que lors des tests / débogages sur des simulateurs.
Plus le simulateur est récent, mieux c'est.
Cas: je lance le simulateur iPhone 8 plus j'ai reçu ce message dans le débogueur.
Solution: je suis passé à un simulateur plus récent sans message d'erreur dans le débogueur.
la source
Ran dans cela lors de l'ouverture d'un projet à partir de GitHub sur Xcode 10.0.
La solution pragmatique était: appuyez simplement sur «Continuer l'exécution du programme» plusieurs fois et désactivez probablement votre point d'arrêt d'exception . Apparemment, l'exception était récupérable.
Ce n'est pas une vraie solution mais c'était assez bien pour moi à ce moment-là.
la source
Dans mon cas, la cible de déploiement de la cible était à iOS 8. Quand je l'ai poussé jusqu'à iOS 10.3, cela fonctionnait bien, à la fois sur le simulateur et sur l'appareil.
la source
Je vois ce problème. Utilisation de Xcode 10.1. Créé un tout nouveau projet - ne fait rien sauf afficher un écran blanc. J'ai découvert qu'il apparaissait sur le simulateur pour les appareils plus anciens. Par exemple, l'iPad Pro (12,9 pouces) et l'iPad Pro (12,9 pouces) (2e génération) montrent le problème, mais le problème a disparu pour l'iPad Pro (12,9 pouces) (3e génération). Ne s'affiche pas pour le simulateur iPhone XR.
Fondamentalement, cela semble ennuyeux.
la source
Si vous avez des polices fournies par l'application, vous devez ajouter à Info.plist et vérifier si le fichier a l'adhésion cible sélectionnée
la source
La manière habituelle lorsque des erreurs étranges se produisent a aidé:
1) projet propre;
2) Arrêtez le simulateur;
3) Réinstaller les pods.
Xcode 10.
la source
Pour moi, avec le simulateur en question au point, j'ai sélectionné Matériel-> Effacer tout le contenu et les paramètres.
Après le redémarrage du simulateur, le lancement de mon application a fonctionné à nouveau, comme prévu.
la source
Device
->Erase All Content and Settings...
Je suis allé à XCode -> Préférences -> Composants Cochez tous les simulateurs et la case à cocher pour installer les mises à jour automatiquement, puis "vérifier et installer maintenant" et je suis parti pendant quelques heures pendant qu'ils étaient tous mis à jour.
Maintenant, le problème a disparu - donc en fait, c'est comme mentionné. Nouveau XCode avec l'ancien - simulateurs non mis à jour.
la source
J'ai eu le même problème, mais avec MapKit, où un MapView ne s'affiche pas, juste l'écran blanc et la même erreur, MGIsDeviceOneOfType n'est pas pris en charge sur cette plate-forme.
Résolu le problème en corrigeant les avertissements "Disposition ambiguë" liés à l'objet MapView. Maintenant, cela fonctionne parfaitement bien et les erreurs ont disparu.
la source
Ce qui a fonctionné pour moi était de changer à l'intérieur
general > Deployment Info > Main Interface
de CDVLaunchScreen et de faire la même chose à l'intérieurgeneral > App Icons and Launch Images > Launch Screen File
de CDVLaunchScreen.Je viens d'Ionic, donc ce n'est peut-être pas un problème pour ceux qui développent en Swift / Objective-C.
la source
J'ai récemment mis à jour vers Xcode
10.2
et lorsque j'ai essayé d'exécuter un projet créé dans une version antérieure, la même erreur s'est produite.Le problème était que le simulateur fonctionnait avant la mise à jour de Xcode.
La solution était très simple pour moi de quitter Simulator et de redémarrer afin qu'il puisse obtenir les nouvelles modifications. Je ne pense pas que le modèle du simulateur (iPhone SE ou iPhone X) compte. Il vous suffit de redémarrer votre simulateur pour qu'il prenne effet à la nouvelle mise à jour.
Je recommanderais de quitter à la fois Xcode et le simulateur et de redémarrer votre Mac.
la source
J'ai eu cette erreur en appelant
.sync
la file d'attente principale qui a provoqué un blocage (DispatchQueue.main.sync {}
). Je voulais appeler.async
.la source
J'ai eu cette erreur, en essayant de lire un fichier json qui se trouve dans mon projet et il a renvoyé nul, à cause de cela, j'ai eu cette erreur.
J'ai eu nul à cause d'une faute d'orthographe dans le nom de la police, ce fichier json contenait les noms de police, après avoir copié-collé le nom de la police, j'ai obtenu des données et l'erreur a été corrigée.
J'ai essayé presque toutes les solutions données ci-dessus, rien n'a fonctionné, alors déboguez avec patience, vous saurez ce qui est à l'origine de cette erreur et dans un mauvais moment, xcode jouera dans notre vie :)
la source
J'étais confronté au même problème mais je l'ai laissé tomber avec les choses ci-dessous:
J'espère que cela aidera.
la source