今天,扩展崩溃启动在iOS 8.1.2之前

问题描述 投票:15回答:4

我一直在做一个今天的扩展,下载从进料文章,显示最新的。整个事情的罚款在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)'

我已阅读这篇文章关于频繁的错误发展的今天扩展时发生的事情:http://www.atomicbird.com/blog/ios-app-extension-tip

在他的岗位,汤姆·哈灵顿说:

在iOS中8(以及其他最近的版本),在Xcode的构建设置使模块意味着你不必明确列出所有你想要使用的框架。他们会自动找到。

但是,这不符合NotificationCenter.framework,今天扩展使用的情况。如果从构建设置删除,你不会得到任何编译警告或错误。但是,当你尝试加载扩展,你会从libextension.dylib得到一个例外,你的扩展将不会加载。异常消息是不是启发:

2014年8月16日12:06:53.793 TodayTestExtension [41313:6111763] *终止应用程序由于未捕获的异常 'NSInvalidArgumentException',原因:“* setObjectForKey:对象不能是零(标号:<__ NSConcreteUUID 0x7fd729422390> ED3B42F8-66CD-4CB0- BCD5-F3DBA​​6F34DB5)”如果你做一个扩展的今天,只留下在构建设置,框架。它不应该需要在那里,但它确实。

我的分机不包括NotificationCenter.framework在其构建设置,但我怀疑我的问题可能是在某些方面类似。

任何人都面临着类似的问题?任何想法如何解决呢?

ios objective-c ios8-today-widget today-extension
4个回答
44
投票

如果你使用NSExtensionPrincipalClass内“的Info.plist”也会出现此错误,以定义一个基类(而不是使用故事板)与视图控制器的不存在的名称。

当使用斯威夫特,确保与模块名称(通常是目标的名称),如“Module.MyViewController”前缀的类。


0
投票

刚刚经历过同样的问题。对我来说,这是在键盘的目标“常规设置”,“主界面”属性。这是空白,我将其设置为我的故事板文件,现在它的工作原理就像一个魅力。


0
投票

最后,我想从我的目标删除NotificationCenter.framework并把它放回去,清洗的项目,而现在它的再次合作。我猜框架毕竟不是正常的联系,但我可以看到它在我的Xcode目标。另外,我想不通为什么它没有工作,然后停下来与8.1.2到来的工作。


0
投票

我通过添加@objc属性雨燕类修复了这个问题。

@objc(NotificationViewController)
class NotificationViewController: UIViewController, UNNotificationContentExtension {
...
}
© www.soinside.com 2019 - 2024. All rights reserved.