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

Posted

技术标签:

【中文标题】Xcode 8.0 GM iPhone 模拟器 (iOS 10) 崩溃【英文标题】:Crash on Xcode 8.0 GM iPhone Simulator (iOS 10) 【发布时间】:2016-09-08 07:20:38 【问题描述】:

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

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

崩溃的线程是这样的

我想知道是什么

TCC`CRASHING_DUE_TO_PRIVACY_VIOLATION

是什么意思,怎么解决?

【问题讨论】:

什么代码/控制器导致崩溃?尝试使用断点或日志来调试您的项目。 应用程序好像被系统杀死了,我已经添加了 All Exceptions breakPoint ,但运气不好。 如果你的应用因为XPCConnection而崩溃,那么你只需要使用稳定的操作系统版本。它可能与测试版软件。因为它是由于内部硬件通信。 对我来说,它发生在一台装有 iOS 10~ 的设备上,但没有发生在另一台装有 9 的设备上~ 【参考方案1】:

您是否正在使用需要用户批准的功能(如相机、位置等)? TCC 处理对此类资源的访问,__CRASHING_DUE_TO_PRIVACY_VIOLATION__ 中的崩溃通常意味着您没有满足使用该功能的要求。

确保您在 Info.plist 文件中拥有任何这些功能的使用说明密钥。 iOS 10 现在绝对要求您提供如下描述:

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

它可能正在您的设备上运行,因为您之前已授予权限。如果您删除该应用程序并等待 24 小时(或安装在以前从未安装过该应用程序的其他设备上),您可能会在设备上看到相同的内容。 (不同的服务对于权限是快速消失还是保存一段时间以允许重新安装有不同的策略。

更新:

有一个nice Technical Q&A page on developer.apple.com 描述了需要使用说明的框架,并列出了每个框架的相关键以及所涉及的类/函数/选择器。

【讨论】:

有人知道如何在 Cordova 项目中列出这些吗? @Birowsky ***.com/questions/39571603/… @prabhu 是的,就是我: 哎呀我没注意到:)【参考方案2】:

除了@russbishop 的回答:

您也需要做同样的事情来访问画廊。 比如:

<key>NSPhotoLibraryUsageDescription</key>
<string>$(PRODUCT_NAME) needs access to use your photo library</string>

PS: 与您的情况完全相反,我在设备上遇到了同样的崩溃,但在模拟器上却没有。

【讨论】:

【参考方案3】:

除了以上所有答案:

对我来说是相机和麦克风,NSCameraUsageDescription 和 NSMicrophoneUsageDescription。

如果你想录制视频,你应该同时添加它们。

感谢苹果。

【讨论】:

以上是关于Xcode 8.0 GM iPhone 模拟器 (iOS 10) 崩溃的主要内容,如果未能解决你的问题,请参考以下文章

Phone 5 标签栏不工作 - iOS7 和 Xcode GM

使用 macOS Sierra GM (16A322) 和 xCode 8.0 提交 iOS 应用程序以供审核时出错

如何在 Xcode 6.1 中安装 iOS 7.0 和 iOS 8.0 模拟器?

AudioServicesPlaySystemSound 在模拟器 xCode 6 GM 上静音

xcode 没有 iphone4s 模拟器 的解决方法..

xcode gm ios 8 gm swift 今天扩展在模拟器和设备中崩溃:库未加载:@rpath/libswiftCore.dylib