当我尝试在装有 iOS10.3
的 iPhone7+
上使用 OpenGLES
时,每个应用程序都会出现这种情况。但它在我的 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
的bug还是什么?因为当我在 iPhone5s
iOS10.2
上运行应用程序时,这些消息没有显示在屏幕上。当我将手机升级到 iOS10.3.1
时,按摩再次显示。
之所以问这个问题是因为有些动画效果在我的iPhone7+上表现的很卡,但是在iPhone5s上完全流畅。不过现在看来和上面的信息和卡死没有关系,得检查一下我的iPhone7+了……
最佳答案
我遇到了同样的问题。事实证明是多个线程访问同一个 OpenGLES 相关资源,具体来说是 EAGLContext
。我猜有可能是 OpenGLES 相关代码不是线程安全的,并且它在不同的操作系统版本/iPhone 7/7+ 中表现不同,有时它会弄乱内存。
确保数据访问跨线程同步后,问题就消失了。
关于ios - MobileGestalt 无法访问 InverseDeviceID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43197726/