MobileGestalt не имеет доступа к InverseDeviceID - программирование
Подтвердить что ты не робот

MobileGestalt не имеет доступа к InverseDeviceID

Это происходит с каждым приложением, когда я пытаюсь использовать OpenGLES на моем iPhone7+ с iOS10.3. Но он работает без проблем на моем iPhone7 iOS10.1.

Это сообщение, которое я получаю:

libMobileGestalt MobileGestaltSupport.m:153: pid 304 (OpenGLES_Ch4_1) does not have sandbox access for ... and IS NOT appropriately entitled 
libMobileGestalt MobileGestalt.c:549: no access to InverseDeviceID 

Есть ли у кого-нибудь идеи об этих сообщениях?


Интересно, это ошибки или что-то еще в iOS10.3? Потому что, когда я запускаю приложение на iPhone5s iOS10.2, эти сообщения не отображались на экране. Пока я обновил телефон до iOS10.3.1, снова показаны сеансы массажа.

Причина, по которой я задаю этот вопрос, заключается в том, что некоторые эффекты анимации довольно сильно застряли на моем iPhone7 +, но на iPhone5s они полностью гладкие. Но теперь кажется, что это не связь между сообщением выше и застрявшим, и я должен проверить свой iPhone7 +...

4b9b3361

Ответ 1

У меня была такая же проблема. Оказалось, что несколько потоков обращаются к одному и тому же ресурсу, связанному с OpenGLES, EAGLContext, чтобы быть конкретным. Я думаю, возможно, что коды, связанные с OpenGLES, не являются потокобезопасными, и они ведут себя по-разному в разных версиях ОС /iPhone 7/7+, иногда это испортит память.

Убедившись, что обращения к данным синхронизированы по потокам, проблема исчезла.

Ответ 2

Для тех из вас, кто, возможно, использует Ionic и получает эту ошибку, просто убедитесь, что в случае, если вы клонировали новую свежую копию проекта из своего репозитория, вы сделали как npm install, так и bower install.

Мне не хватало bower install, и это мучило меня, как два дня, поэтому надеюсь, что это кому-то поможет. Грустно то, что я, во всяком случае, не новичок с Ionic (top # 3), но все же смог пропустить этот факт, поэтому я надеюсь, что в если кто-то другой столкнется с этой проблемой, это поможет вам.

Ответ 3

Отображение и функциональность Google Map отлично работают с этим предупреждением

Проверьте мой ответ здесь: fooobar.com/questions/108982/...

Ответ 4

У меня просто была эта проблема при попытке использовать in-app-purcahses, и я часами стучал головой о стол.

Не уверен, что у вас такая же проблема, но я понял, что вам нужно создать пользователя Sandbox в iTunes Connect, а затем войти в iCloud на устройстве iOS с этим пользователем, чтобы приложение могло работать.

Ответ 5

Я вижу, где настройка учетной записи sandbox может сделать трюк, но если устройство, которое вы используете, также подключено к вашей обычной учетной записи icloud, вы не можете создать песочницу с тем же AppleID. Затем вам нужно выйти из существующей учетной записи icloud и войти в систему с помощью нового icloud (sandbox) useid. Это заткнет ваши существующие настройки устройства icloud. Таким образом, вы не можете использовать свой идентификатор разработчика, только ваш идентификатор Sandbox.

Ответ 6

Это сработало для меня:

  • Создайте нового пользователя песочницы в iTunesConnect. ДА, вам нужно создать нового пользователя iCloud с новым электронным письмом.
  • Выйдите из текущего пользователя iCloud на своем Mac и на устройстве, на котором вы тестируете.
  • Вход в систему с вашим новым пользователем iCloud на вашем Mac и на устройстве, на котором вы тестируете.
  • Запустите приложение на своем устройстве еще раз. На этот раз он должен работать.

Надеюсь, Apple придет и упростит эту проблему, поскольку это настоящая боль в...

Ответ 7

У меня была такая же проблема, и это указывало мне в правильном направлении:

Мне удалось решить ту же проблему для MKMapView. Видимо, это происходит, когда текущее состояние разрешений вашего приложения не соответствует названию (объявленному в Info.plist). Это эффективно означает, что вам нужно вызывать API-интерфейсы для сбора прав пользователя явно и упреждающе. (Например, LocationManager.requestWhenInUseAuthorization перед отображением карты с местоположением пользователя на ней)

Источник: rdar://проблема/11744455

Ответ 8

У меня была такая же проблема. Моя программа рендеринга была написана для поддержки 3-х версий openglES (1, 2 и 3). В моем случае я случайно поставил EAGLRenderingAPI.openGLES1 or kEAGLRenderingAPIOpenGLES1 в класс рендеринга на основе openGLES2.

Ответ 9

Я получил это предупреждающее сообщение консоли из-за проблем с несколькими учетными записями Apple Developer. Очевидно, что у вас нет учетной записи в виде песочницы с существующей учетной записью Apple Developer. Я не пытался создать учетную запись для песочницы, но, похоже, проверял мою учетную запись по умолчанию, которая также является старой учетной записью Apple Developer, которую я не использую, и, следовательно, больше не имеет права. Эта проблема была сообщена Apple много раз другими людьми, и я еще не видел решения.

Мое обходное решение для подавления этого предупреждения состояло в том, чтобы установить переменную среды OS_ACTIVITY_MODE в отключить в моих настройках схемы. Вы можете нажать на название приложения, а затем нажмите Изменить схему... или в верхнем меню вы можете нажать Продукт- > Схема- > Изменить схему...:

Edit Scheme...

Затем вы редактируете настройки Выполнить и добавляете переменную окружения OS_ACTIVITY_MODE и устанавливаете ее в отключить:

Run Environment Variables

ПРИМЕЧАНИЕ. Обязательно установите эту переменную среды включить, прежде чем отправлять свое приложение, чтобы вы могли видеть, есть ли другие предупреждения. Могут быть другие предупреждения, которые вы должны исправить, прежде чем отправлять свое приложение в App Store.