【问题标题】:UIDocumentPickerViewController crashes due to missing iCloud entitlementUIDocumentPickerViewController 由于缺少 iCloud 权利而崩溃
【发布时间】:2015-04-17 17:26:07
【问题描述】:

我在我的 iOS 应用程序中使用UIDocumentPickerViewController 来允许用户打开外部文件。我已将相关的 iCloud 权利添加到我的应用程序包中,并且大多数情况下一切正常。

但是,有时文档选择器会崩溃,并抱怨应用程序缺少此 iCloud 权利。我通过实验发现,当这种情况发生时,[NSFileManager defaultManager].ubiquityIdentityToken 的值通常为 nil,因此我通过检查ubiquityIdentityToken 作为临时措施来保护我对文档选择器的调用。

谁能解释一下这里可能发生的事情,以及我可以做些什么来避免这次崩溃?这似乎完全不受我的控制。

【问题讨论】:

  • 生产环境中也会发生这种情况吗?或仅在测试时
  • 是的,它也在生产中发生;我正在将故障转储发送到 Rollbar。

标签: ios icloud


【解决方案1】:

也发生在我的应用程序中——我只想使用文件提供程序功能,并不专门支持 iCloud Drive。

我无法解释为什么它似乎与 iCloud 失去联系,但这不是“崩溃”——[[UIDocumentPickerViewController alloc] init___] 正在引发异常,您可以使用 try/catch 块捕获它。也就是说,我怀疑你的应用程序因“未捕获的异常”而崩溃——如果你发现了它,你可以给出一条错误消息。

【讨论】:

  • 是的,我对 Objective-c 还很陌生,最近才发现可以捕获异常——这可能是处理这个问题的最佳方法。
【解决方案2】:

这可能是由于用户盗版应用造成的。这可能会导致应用程序具有无效的 iCloud 权利,这反过来会使UIDocumentPickerViewController 引发异常。所以不是 UIKit 中的错误,它在做正确的事情。

捕获异常可能会使应用程序免于崩溃,但我们可能不应该帮助盗版者,啊?

【讨论】:

    猜你喜欢
    • 2014-09-01
    • 1970-01-01
    • 2019-09-02
    • 1970-01-01
    • 2014-12-17
    • 2018-06-12
    • 1970-01-01
    • 2012-02-12
    • 2018-09-14
    相关资源
    最近更新 更多