.scn 模型中的多个节点导致 iMessage 扩展崩溃



我正在iMessage扩展中使用SceneKit,并遇到了一个特殊的小问题。我正在尝试使用混合形状锚点将自定义 scn 模型和绑定节点渲染到用户的面部表情。我能够在iOS应用程序中成功执行此操作,此iMessage扩展程序诞生时没有问题。但是,一旦放入 MessageViewController 中,每次我尝试运行它时,程序都会以代码 0 退出。

我做了一些挖掘,似乎"以代码 0 退出"表示内存过载,所以我开始使用我的模型节点。我发现,如果我删除除一个节点之外的所有节点,我就可以使用该节点的相应混合形状对该节点进行动画处理。超过一个节点,它都会崩溃。

有没有人对为什么会发生这种情况有任何想法?或者任何证据表明iMessage扩展在被杀死之前只被授予一定数量的处理能力(我的另一个理论(?

感谢任何帮助!

从应用扩展编程指南中我们了解到

运行应用扩展的内存限制

明显低于对前台应用施加的内存限制。在这两个平台上,系统可能会主动终止扩展,因为用户希望返回到主机应用中的主要目标。某些扩展的内存限制可能比其他扩展低:例如,小组件必须特别高效,因为用户可能会同时打开多个小组件。

应用扩展不拥有主运行循环,因此遵循主运行循环中良好行为的既定规则至关重要。例如,如果扩展阻止主运行循环,则可能会在其他扩展程序或应用中产生不良的用户体验。

请记住,GPU 是系统中的共享资源。应用扩展信息不会获得共享资源的最高优先级;例如,运行图形密集型游戏的"今日"小组件可能会给用户带来糟糕的体验。由于内存压力,系统可能会终止此类扩展。大量使用系统资源的功能适用于应用,而不是应用扩展。

一种选择可能是尝试优化 DCC 中的几何图形,这样就不会遇到系统资源限制。

最新更新