У меня очень простое приложение с одним представлением, содержащее несколько UILabels. После запуска в Simulator консоль Xcode возвращает ошибку:
libMobileGestalt MobileGestalt.c: 875: MGIsDeviceOneOfType не поддерживается на этой платформе.
Сам симулятор просто показывает белый экран. Я также пробовал запустить его на устройстве разработчика с таким же белым экраном. Я искал документацию, но не нашел ссылки на MGIsDeviceOneOfType
. Приложение написано на Swift в Xcode 10 beta на macOS 10.14. Я пытаюсь запустить его на симуляторах iPhone 7-X, а также на разрабатываемом iPhone 7, на каждом из которых запущено целевое программное обеспечение (12.0).
Ответы:
MobileGestalt
LibMobileGestalt.dylib обеспечивает централизованное хранилище для всех свойств Иос. Это может быть аналогично гештальту OS X, который является частью
CoreServices
. Гештальт в OS X задокументирован, например, в Gestalt Manager, и в 10.8 он объявлен устаревшим. MobileGestalt полностью недокументирован Apple, поскольку это частная библиотека.MobileGestalt позволяет тестировать свойства системы, которые могут быть совместимы или несовместимы на разных симуляторах.
Многие системные процессы и приложения в iOS полагаются на MobileGestalt, который находится по адресу /usr/lib/libMobileGestalt.dylib. Это скорее базовая библиотека, но ее открытые API соответствуют соглашениям Apple framework и используют,
MG
например, префикс APIMGIsDeviceOneOfType
.Если вы поищете MobileGestalt в файловой системе iOS, вы не найдете его - как и все частные фреймворки и библиотеки, он был предварительно привязан к /System/Library/Caches/...etc. Если вам нравится взлом и проверка на проникновение, вы можете использовать инструменты для его извлечения.
MobileGestalt предоставляет много информации - около 200 запросов - по различным аспектам системы. Вот несколько.
Есть еще сотни, например
AirplaneMode
,MobileEquipmentIdentifier
и т. Д.MobileGestalt поддерживает таблицу кодов селектора OSType. например c: 890 в сообщении: libMobileGestalt MobileGestalt.c: 890: MGIsDeviceOneOfType не поддерживается на этой платформе. В данном случае
MGIsDeviceOneOfType
это метод библиотеки MobileGestalt .Вместо проверки версии симулятора есть отдельный селектор для прямого запроса возможностей симулятора. Сообщения, скорее всего, указывают на несовместимость между версиями симулятора и версиями Xcode и / или неподдерживаемыми API на симуляторе.
источник
Успешно скинул с отключением мусора проекта.
Перейдите в < Имя вашего проекта > -> Схема -> Изменить схему. Затем перейдите в Выполнить (меню слева) и добавьте следующую переменную среды:
Имя : OS_ACTIVITY_MODE, значение : отключить
источник
в моем случае: проверьте делегата вашего приложения на метод didFinishLaunching. У меня был приват, и я получаю сообщение об ошибке. После удаления "приват" все работает нормально
источник
Я только что установил Xcode 10 Beta и столкнулся с той же проблемой. Запустил Xcode 9.4.1, и проблема исчезла.
источник
Эта ошибка возникает только при тестировании / отладке на симуляторах.
Чем новее симулятор, тем лучше.
Кейс: Я запускаю симулятор iPhone 8 plus У меня в отладчике появилось это сообщение.
Решение: я перешел на более новый симулятор без сообщения об ошибке в отладчике.
источник
Вступайте в это при открытии какого-либо проекта из GitHub на Xcode 10.0.
Прагматическое решение было: просто несколько раз нажмите «Продолжить выполнение программы» и, возможно, отключите точку останова по исключению . Судя по всему, исключение можно было исправить.
Это не настоящее решение, но на тот момент для меня оно было достаточно хорошим.
источник
В моем случае целью развертывания была iOS 8. Когда я довел ее до iOS 10.3, она работала нормально как на симуляторе, так и на устройстве.
источник
Увижу эту проблему. Использование Xcode 10.1. Создал новый проект - ничего не делает, кроме показа белого экрана. Обнаружено, что он появлялся на симуляторе для старых устройств. Например, iPad Pro (12,9 дюйма) и iPad Pro (12,9 дюйма) (2-го поколения) показывают проблему, но проблема исчезла для iPad Pro (12,9 дюйма) (3-го поколения). Не отображается для симулятора iPhone XR.
В основном это раздражает.
источник
Если у вас есть шрифты, предоставленные приложением, вам необходимо добавить в Info.plist и проверить, выбрано ли для файла целевое членство.
источник
Помог штатный способ при возникновении странных ошибок:
1) Чистый проект;
2) Выключите симулятор;
3) Переустановите капсулы.
Xcode 10.
источник
Для меня, когда в центре внимания рассматриваемый симулятор, я выбрал Оборудование-> Стереть все содержимое и настройки.
После перезапуска симулятора запуск моего приложения снова сработал, как и ожидалось.
источник
Device
->Erase All Content and Settings...
Я пошел в XCode -> Настройки -> Компоненты. Отметил все симуляторы и флажок для автоматической установки обновлений, а затем «Проверить и установить сейчас» и ушел на несколько часов, пока все они обновлялись.
Теперь проблема ушла - так что, собственно, как уже упоминалось. Новый XCode со старым - не обновляемые симуляторы.
источник
У меня была такая же проблема, но с MapKit, где MapView не отображался, только белый экран и та же ошибка, MGIsDeviceOneOfType не поддерживается на этой платформе.
Решил это, исправив предупреждения «Неоднозначный макет», привязанные к объекту MapView. Теперь он работает отлично, и ошибки исчезли.
источник
Что сработало для меня, так это изменить внутри
general > Deployment Info > Main Interface
на CDVLaunchScreen и сделать то же самоеgeneral > App Icons and Launch Images > Launch Screen File
с CDVLaunchScreen.Я из Ionic, так что это не проблема для тех, кто разрабатывает Swift / Objective-C.
источник
Я недавно обновился до Xcode,
10.2
и когда я попытался запустить проект, созданный в более ранней версии, произошла такая же ошибка.Проблема заключалась в том, что симулятор работал до обновления Xcode.
Для меня было очень просто выйти из Simulator и перезапустить, чтобы он мог получить новые изменения. Не думаю, что модель симулятора (iPhone SE или iPhone X) имеет значение. Вам просто нужно перезапустить симулятор, чтобы новое обновление вступило в силу.
Я бы рекомендовал выйти из Xcode и симулятора и перезагрузить Mac.
источник
Я получил эту ошибку, вызвав
.sync
основную очередь, которая вызвала взаимоблокировку (DispatchQueue.main.sync {}
). Я хотел позвонить.async
.источник
Я получил эту ошибку при попытке прочитать файл json, который находится внутри моего проекта, и он вернул ноль, из-за этого я получил эту ошибку.
Я получил ноль из-за какой-то орфографической ошибки в имени шрифта, этот json-файл содержал имена шрифтов, после копирования, вставки имени шрифта, я получил данные, и ошибка исправлена.
Я перепробовал почти все решения, приведенные выше, ничего не помогло, поэтому отлаживайте с терпением, вы узнаете, что вызывает эту ошибку, и в какое-то плохое время xcode будет играть в нашей жизни :)
источник
У меня была такая же проблема, но я успешно сбросил ее с помощью следующих вещей:
Надеюсь, это поможет.
источник