ios MobileGestalt 无法访问 InverseDeviceID
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/43197726/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
MobileGestalt no access to InverseDeviceID
提问by Tony.Lee
This happens with every app when I try to use OpenGLES
on my iPhone7+
with iOS10.3
. But it works without any problems on my iPhone7
iOS10.1
.
当我尝试OpenGLES
在我的iPhone7+
with上使用时,每个应用都会发生这种情况iOS10.3
。但它在我的iPhone7
iOS10.1
.
This is the message I get:
这是我得到的消息:
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
Does anyone have an idea about these messages?
有没有人知道这些消息?
I wonder if it is bugs or something else in iOS10.3
? Because when I run the app on iPhone5s
iOS10.2
, those messages did notshown on the screen. While I upgraded the phone to iOS10.3.1
, the massages shown again.
我想知道是bug还是别的什么iOS10.3
?因为当我在 上运行应用程序时iPhone5s
iOS10.2
,这些消息没有显示在屏幕上。当我将手机升级到 时iOS10.3.1
,按摩再次显示。
The reason why I ask this question is that some animation effects perform quite stuck on my iPhone7+, but it is completely smooth on iPhone5s. But now it seems it is no relationship between the message above and the stuck, and I have to check my iPhone7+...
我问这个问题的原因是一些动画效果在我的iPhone7+上表现得很卡,但在iPhone5s上完全流畅。但是现在看来上面的消息和卡住没有关系,我要检查我的iPhone7 +......
回答by b123400
I had the same issue. It turns out to be multiple thread accessing the same OpenGLES related resource, EAGLContext
to be specific. I guess it is possible that OpenGLES related codes are not thread-safe, and it behaves differently in different OS versions / iPhone 7 / 7+, sometimes it messes up the memory.
我遇到过同样的问题。事实证明,多线程访问相同的 OpenGLES 相关资源,EAGLContext
具体来说。我想可能与 OpenGLES 相关的代码不是线程安全的,它在不同的操作系统版本/iPhone 7 / 7+ 中表现不同,有时会弄乱内存。
After making sure data accesses are synchronised across threads, the problem is gone.
确保跨线程同步数据访问后,问题就消失了。
回答by Nikola
For those of you who are maybe using Ionic and getting this error, please just make sure that in case you've cloned a new fresh copy of the project from your repository that you did both npm install
and bower install
.
对于那些可能正在使用 Ionic 并遇到此错误的人,请确保您已从存储库中克隆了该项目的新副本,npm install
并且bower install
.
I was missing bower install
and this was torturing me for like two days, so hope this helps someone. Sad thing is that I'm by all means not a beginner with Ionic (top #3answerer on SO) but was still able to miss this fact so I hope that in case someone else runs into this problem it will help you.
我失踪了bower install
,这折磨了我两天,所以希望这对某人有所帮助。可悲的是,我绝不是 Ionic 的初学者(SO上排名前三的回答者),但仍然能够错过这个事实,所以我希望如果其他人遇到这个问题,它会帮助你。
回答by Lahiru Pinto
Google Map display and functionality works fine with this warning
谷歌地图显示和功能在此警告下正常工作
Check my answer here: https://stackoverflow.com/a/44970665/3378076
在这里查看我的答案:https: //stackoverflow.com/a/44970665/3378076
回答by inigo333
I had the same issue, and this point me in the right direction:
我遇到了同样的问题,这为我指明了正确的方向:
I've managed to solve the same problem for MKMapView. Apparently, that happens when your app's current permissions state doesn't correspond to entitled (declared in Info.plist) one. That effecively means that you need to call APIs to gather user's permissions explicitly and preemptively. (E.g. LocationManager.requestWhenInUseAuthorization before displaying a map with user location on it)
我已经设法为 MKMapView 解决了同样的问题。显然,当您的应用程序的当前权限状态与授权(在 Info.plist 中声明)不对应时,就会发生这种情况。这实际上意味着您需要调用 API 来显式地、抢先地收集用户的权限。(例如 LocationManager.requestWhenInUseAuthorization 在显示带有用户位置的地图之前)
Source: rdar://problem/11744455
回答by padam thapa
I had same issue. My rendering program was written to support 3 version of openglES(1, 2 and 3). On my case I was accidentally supplying EAGLRenderingAPI.openGLES1 or kEAGLRenderingAPIOpenGLES1
to my renderer class based on openGLES2.
我有同样的问题。我的渲染程序被编写为支持 3 个版本的 openglES(1、2 和 3)。就我而言,我不小心向EAGLRenderingAPI.openGLES1 or kEAGLRenderingAPIOpenGLES1
基于 openGLES2 的渲染器类提供了资源。
回答by TommyF
This worked for me:
这对我有用:
- Create a new sandbox user in iTunesConnect. YES, you have to create a new iCloud user with a new email.
- Log OUT your current iCloud user on your mac AND on the device you are testing on.
- Log IN with your new iCloud user on your mac AND on the device you are testing on.
- Run your app on your device again. This time it should work.
- 在 iTunesConnect 中创建一个新的沙箱用户。是的,您必须使用新电子邮件创建新的 iCloud 用户。
- 在您的 Mac 和您正在测试的设备上注销您当前的 iCloud 用户。
- 在您的 Mac 和您正在测试的设备上使用您的新 iCloud 用户登录。
- 再次在您的设备上运行您的应用。这次应该可以了。
Hopefully Apple will come around and simplify this issue since this is a real pain in the ...
希望 Apple 能够解决并简化这个问题,因为这在...
回答by mbrookson
I just had this issue when trying to use in-app-purchases.
我在尝试使用应用内购买时遇到了这个问题。
Not sure if yours is the same issue, but I realised that you HAVE to create a Sandbox User in iTunes Connect, then log into iCloud on an iOS device with that user to enable the app to work.
不确定您的问题是否相同,但我意识到您必须在 iTunes Connect 中创建一个沙盒用户,然后与该用户在 iOS 设备上登录 iCloud 以启用该应用程序。
回答by Postmaster
I can see where the setting up of a sandbox account might do the trick, but if the device you are using is also connected to your normal icloud account, you can't create a sandbox with the same AppleID. You then have to log out of your existing icloud account, and log in with the new icloud (sandbox) useid. Which screws up your existing icloud device settings. So you are unable to use your Developer ID, only your Sandbox ID.
我可以看到沙箱帐户的设置可能在哪里起作用,但是如果您使用的设备也连接到您的普通 icloud 帐户,则您无法创建具有相同 AppleID 的沙箱。然后,您必须注销现有的 icloud 帐户,并使用新的 icloud(沙盒)用户 ID 登录。这搞砸了您现有的 icloud 设备设置。所以你不能使用你的开发者 ID,只能使用你的沙盒 ID。
回答by ByteSlinger
I got this console warning message because of issues with multiple Apple Developer accounts. Evidently you cannot have a sandbox account with an existing Apple Developer account. I didn't try to create a sandbox account but it seems to check my default account, which is also an old Apple Developer account that I don't use and hence is no longer entitled. This issue has been reported to Apple many times by other people and I have not yet seen a solution.
由于多个 Apple Developer 帐户的问题,我收到了此控制台警告消息。显然,您不能拥有现有 Apple Developer 帐户的沙盒帐户。我没有尝试创建沙箱帐户,但它似乎检查了我的默认帐户,这也是我不使用的旧 Apple Developer 帐户,因此不再有资格。这个问题已经被其他人多次报告给苹果,我还没有看到解决方案。
My workaround to suppress this warning was to set the OS_ACTIVITY_MODEenvironment variable to disablein my scheme settings. You can click on the app name and then click Edit Scheme...or from the top menu you can click Product->Scheme->Edit Scheme...:
我抑制此警告的解决方法是将OS_ACTIVITY_MODE环境变量设置为在我的方案设置中禁用。您可以单击应用程序名称,然后单击Edit Scheme...或从顶部菜单中单击Product->Scheme->Edit Scheme...:
Then you edit the "Run" settings and add the environment variable OS_ACTIVITY_MODEand set it to disable:
然后编辑“运行”设置并添加环境变量OS_ACTIVITY_MODE并将其设置为禁用:
NOTE: Be sure to set this environment variable to enablebefore you submit your app so that you can see if there are other warnings. There may be other warnings you should fix before you submit your app to the App Store.
注意:请务必在提交应用程序之前将此环境变量设置为启用,以便您可以查看是否还有其他警告。在将应用程序提交到 App Store 之前,您可能还应该修复其他警告。