Ios iCloud UIDocumentPicker间歇性崩溃并挂起

Ios iCloud UIDocumentPicker间歇性崩溃并挂起,ios,objective-c,xcode,icloud,uidocumentpickervc,Ios,Objective C,Xcode,Icloud,Uidocumentpickervc,问题: 当从iCloud中选择文档时,应用程序会随机崩溃,在大多数情况下,以下代码都能正常工作,但在极少数情况下会失败 我已经在应用程序中启用了iCloud授权,但似乎找不到它间歇性失败的原因。有我遗失的支票吗 有时(通常是在撞车之前)它也会挂上5秒钟左右 代码: 错误: 2015-03-18 16:22:15.955 E-Sign[6338:1860982] *** Assertion failure in -[UIDocumentPickerViewController _commonIni

问题:

当从iCloud中选择文档时,应用程序会随机崩溃,在大多数情况下,以下代码都能正常工作,但在极少数情况下会失败

我已经在应用程序中启用了iCloud授权,但似乎找不到它间歇性失败的原因。有我遗失的支票吗

有时(通常是在撞车之前)它也会挂上5秒钟左右

代码:

错误:

2015-03-18 16:22:15.955 E-Sign[6338:1860982] *** Assertion failure in -[UIDocumentPickerViewController _commonInitWithCompletion:], /SourceCache/UIKit/UIKit-3318.93/UIDocumentPickerViewController.m:66
2015-03-18 16:22:15.960 E-Sign[6338:1860982] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Application initializing document picker is missing the iCloud entitlement. Is com.apple.developer.icloud-container-identifiers set?'
其他错误:

2015-03-18 16:33:45.884 E-Sign[6357:1864309] plugin com.apple.UIKit.fileprovider.default interrupted
2015-03-18 16:33:45.885 E-Sign[6357:1864309] plugin com.apple.UIKit.fileprovider.default invalidated

以前有人遇到过这种情况吗?

由于iCloud权限设置不正确,似乎发生了以下错误。请再检查一遍。您的包含应用程序和扩展需要位于同一应用程序组中。从功能中启用应用程序组(如果未启用)。如果两个都设置正确,但仍然出现错误,那么就没有可能发生错误的线索

2015-03-18 16:22:15.960 E-Sign[6338:1860982] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Application initializing document picker is missing the iCloud entitlement. Is com.apple.developer.icloud-container-identifiers set?'

我还面临着其他错误。这就是我来这里的原因

我最近解决了同一个问题:

***-[UIDocumentPickerViewController\u commonInitWithCompletion:]中的断言失败

是由于缺少应用程序功能造成的。 转到您的构建并选择功能->iCloud

通过右侧的开关激活它,然后打开iCloud文档和CloudKit。(注意:这仅适用于付费开发人员帐户)

重建->运行

还应铭记:

iCloud授权仅适用于提交到App Store或Mac App Store的应用。


经过大量研究,我得出了一个重要结论:

我在处理同样的问题,这真的很痛苦。因此,在深入检查代码并调试之后,最终的结果是管理在显示选择器时执行的UI更改。显示选择器和UI更改的转换会产生刺激行为,并最终导致崩溃和挂起

因此,我的建议是尽量减少UI更新,并在后台进行这些更改,以便无缝打开picker


我的问题在做了这些更改后得到了解决。

调用该方法时,请确保在后台线程中调用它。它将解决这个问题

调度异步(调度获取全局队列(调度队列优先级后台,0)^{ //调用你的方法
});

同样发生在我身上,我不确定这是一个仅限于开发的问题,还是在生产中也会发生?这两种情况都会发生。外部测试人员不断报告相同的问题,最后我删除了整个iCloud功能,因为它不可靠。如原问题所述,iCloud授权已启用。错误的间歇性本质就是问题。使用
UIDocumentPickerViewController
获得了相同的问题。在iOS 9/10上,该应用程序需要iCloud功能。从iOS开始,它不再是必要的。。。
2015-03-18 16:22:15.960 E-Sign[6338:1860982] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Application initializing document picker is missing the iCloud entitlement. Is com.apple.developer.icloud-container-identifiers set?'