我正在创建一个SceneKit游戏,今天我遇到了这个问题。这款游戏在任何iOS 9和更高版本中都应该如何工作,但老版本却是个大麻烦。基本上在iOS 8上的游戏看起来只是一个空白的SpriteKit场景(我把背景设置为白色,所以它是白色的),并且由于某种原因没有呈现任何东西。我不知道为什么,有人知道为什么吗?我找了这个却什么也没找到。哦,我的部署目标是iOS 7.1,但是我没有任何设备可以在iOS 7 ATM机上测试,所以这也可能是一个问题。我还尝试创建一个模板游戏项目(它甚至有iOS 9依赖的代码lol),但是当我试图运行它时,它抛出了这个错误:*** Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: '*** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (SKCameraNode)'。即使我删除了相机节点复选框,它仍然会抛出这个错误,除了删除对iOS 7和8的支持之外,我不知道该做什么:(
发布于 2017-03-01 13:49:36
在您的场景中,您可能使用了iOS 7或8没有的特性。您可以声明某些代码块仅在某些iOS版本中被激活,但是如果您使用的是诸如相机节点之类的关键功能,那么您可能需要增加部署目标,或者使用老式相机。
这个链接显示了如何实现一个古老的相机:PG/Actions/Actions.html。
如果需要,您可以使用https://objectivec2swift.com/#/home/converter/将代码片段转换为Swift。
如果您没有使用相机节点,请尝试在.sks文件中签入对一个节点的任何引用。在编辑器中,有一个名为“使用摄像机”的选项,默认情况下将检查您的基本场景,而不管您是否制作了这样的场景:

我发现没有堆栈跟踪代码行的随机错误通常是由.sks或其他非迅捷文件类型<.<()引起的。
更新:
在窥探之后,这似乎是一个错误或一个问题,没有一个明确的解决方案。我的最后两个解决办法是:
如果您采用这种方式,我建议您使用XC7进行开发,这样您就可以在iOS 9/ 10中共享SWIFT2.3代码,或者使用内置的特性在稍后将其转换为Swift 3。
发布于 2017-05-17 13:04:10
这个答案是基于@BuIlDaLiBlE的评论。
好了。
你有没有试过一次又一次地关掉它?
https://stackoverflow.com/questions/42532142
复制相似问题