【发布时间】:2015-03-25 01:15:00
【问题描述】:
我一直在制作一个 Today 扩展程序,它可以从 Feed 中下载文章并显示最新的文章。 整个事情在 iOS 8 上运行良好,仍然在 iOS 8.1 上运行,然后是 iOS 8.1.2,我们开始抱怨今天的扩展不再工作。 我尝试在 iOS 8.1.2 设备上调试,甚至在扩展程序启动之前,它就因以下错误而崩溃:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** setObjectForKey: object cannot be nil (key: <__NSConcreteUUID 0x174027280> 5AFB07AB-5DCD-46FE-8D07-44DE0F3789F2)'
我已经阅读了这篇关于开发 Today 扩展时经常发生的错误的帖子:http://www.atomicbird.com/blog/ios-app-extension-tip
汤姆·哈灵顿在他的帖子中说:
在 iOS 8(和其他最新版本)中,在 Xcode 的构建设置中启用模块意味着您无需明确列出要使用的所有框架。它们会被自动找到。
但今天的扩展使用的 NotificationCenter.framework 并非如此。如果您从构建设置中删除它,您将不会收到任何构建警告或错误。但是当你尝试加载扩展时,你会从 libextension.dylib 中得到一个异常并且你的扩展不会加载。异常消息没有启发性:
2014-08-16 12:06:53.793 TodayTestExtension[41313:6111763] * 终止 应用程序由于未捕获的异常 'NSInvalidArgumentException',原因:'* setObjectForKey: 对象不能为 nil (key: <__nsconcreteuuid> ED3B42F8-66CD-4CB0-BCD5-F3DBA6F34DB5)' 如果您正在执行今天的扩展,只需将该框架保留在构建设置中即可。它不应该存在,但它确实存在。
我的扩展在其构建设置中确实包含 NotificationCenter.framework,但我怀疑我的问题在某些方面可能类似。
有人遇到过类似的问题吗?知道如何解决吗?
【问题讨论】:
-
哇,真令人沮丧。它看起来完全一样,但这是我所知道的唯一会导致这个问题的东西。
-
这些投诉是来自“现场”用户还是来自运行您的应用程序测试版本的人?首先,这将是一个 8.1.2 错误,您无能为力。其次,它可能是一个可以修复的 Xcode 问题。
标签: ios objective-c ios8-today-widget today-extension