Xcode 8.0 GM iPhone模拟器(iOS 10)崩溃问题

13

在实际设备上运行我的项目时,一切正常。

但是当我尝试在模拟器(iOS 10、iPhone 7和iPhone 6)上运行时,应用程序崩溃了,并且在调试器输出中没有调试器消息。

崩溃的线程看起来像这样:

enter image description here

我想知道TCC`CRASHING_DUE_TO_PRIVACY_VIOLATION的含义,以及如何解决问题?


哪段代码/控制器导致了崩溃?尝试使用断点或日志调试您的项目。 - Dipen Panchasara
应用程序似乎被系统杀死了,我已经添加了所有异常断点,但仍未解决问题。 - wj2061
如果你的应用由于“XPCConnection”而崩溃,则只能使用稳定的操作系统版本来解决问题。这是由于内部硬件通信造成的,因此在测试版软件中可能会出现此类问题。 - Dipen Panchasara
对我来说,这发生在一个iOS 10的设备上,但在另一个9的设备上没有发生。 - Sebastian Sastre
3个回答

30

您是否使用需要用户授权的功能(如相机、位置等)?TCC处理对这些资源的访问,而__CRASHING_DUE_TO_PRIVACY_VIOLATION__中的崩溃通常表示您未满足使用该功能所需的要求。

请确保在Info.plist文件中为任何这些功能设置了用途说明键。iOS 10现在绝对要求您提供诸如以下内容的描述:

<key>NSCameraUsageDescription</key>
<string>For taking selfies!</string>

如果你之前已经授权,那么应用程序很可能在你的设备上正常工作。如果你删除了应用程序并等待24小时(或者在另一台以前从未安装过该应用程序的设备上安装),你很可能会看到同样的情况。(不同的服务对于权限是否会很快消失或保存一段时间以便重新安装有不同的政策)。

更新:

有一个在developer.apple.com上描述需要使用说明的框架以及列出每个框架和涉及的类/函数/选择器的相关键的技术问答页面


有人知道如何在 Cordova 项目中列出它们吗? - Daniel Birowsky Popeski
@Birowsky 当尝试访问联系人时,应用程序崩溃并显示隐私侵犯导致崩溃。 - prabhu
@prabhu 是的,那是我 :} - Daniel Birowsky Popeski
抱歉,我没有注意到 :) - prabhu

3
除了 @russbishop 的回答之外: 你需要对访问相册做同样的事情。类似这样:
<key>NSPhotoLibraryUsageDescription</key>
<string>$(PRODUCT_NAME) needs access to use your photo library</string>

PS:与你的情况完全相反,我在设备上遇到了这个崩溃问题,但模拟器上没有。


2

除了以上所有回答:

对于我来说,重要的是相机和麦克风,即NSCameraUsageDescription和NSMicrophoneUsageDescription。

如果您想录制视频,应添加这两个权限。

感谢Apple。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接