Scenekit崩溃以未知(内部?)方法崩溃



我正在尝试将一些第三方SceneKit代码集成到我的应用中,并且我正在遇到神秘的崩溃。奇怪的是,崩溃没有给出XCode中的错误或日志,而堆栈跟踪只是" UiapplicationMain"。那里没有有用的信息。

代码在我得到的第三方应用程序中起作用,并且我已经复制了它,所以我知道它一定是一些我尚未包括的代表呼叫或某个框架等。这是我的第一个Scenekit的经验,所以我很难了解它可能。

崩溃发生在屏幕上用户点击并在场景中添加新的3D对象的事件。我已经断点了所有关联的方法,并且崩溃似乎在中间时间发生,大概是内部场景功能,所以我无法确定它。

我的crashlytics报告确实获取了一些信息,我在此处包括:

Thread : Crashed: com.apple.main-thread
0  libobjc.A.dylib                0x00981ea8 _objc_empty_cache
1  SceneKit                       0x015e0273 __28-[SCNPhysicsBody _setOwner:]_block_invoke + 214
2  SceneKit                       0x016b05b5 C3DTransactionFlush + 2014
3  CoreFoundation                 0x00bff86e __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 30
4  CoreFoundation                 0x00bff7b0 __CFRunLoopDoObservers + 400
5  CoreFoundation                 0x00bf51ea __CFRunLoopRun + 1226
6  CoreFoundation                 0x00bf4a5b CFRunLoopRunSpecific + 443
7  CoreFoundation                 0x00bf488b CFRunLoopRunInMode + 123
8  GraphicsServices               0x043042c9 GSEventRunModal + 192
9  GraphicsServices               0x04304106 GSEventRun + 104
10 UIKit                          0x01b99106 UIApplicationMain + 1526
11 SW LiveSheet                   0x0007888a main (main.m:14)
12 libdyld.dylib                  0x04e61ac9 start + 1

对我的项目的搜索找不到SCNPhysicsBody _setOwner:的示例,所以我假设这是一个内部场景方法?

有人知道可能导致这样的崩溃吗?我将包含任何可能相关的方法(如果您告诉我它们可能是什么),但是创建对象的一系列方法非常长,因此在这里盲目复制所有方法似乎没有效率。另外,正如我所说,坠机似乎在"方法之间"发生。

有人会识别此错误吗?还是我可能会犯的任何常见的"启动场景"错误,这可能会导致这一点?我知道该代码之所以起作用,是因为它在另一个项目中起作用,这只是翻译中丢失的问题。另外,在TAP开始添加新对象的过程之前,场景确实成功加载。

有人可以指向正确的方向吗?即使只是对在哪里进行调查的想法也将不胜感激。

感谢您帮助Scenekit Newbie!

奇怪的是,答案最终只是在设备上运行该应用程序。我永远无法弄清楚模拟器中有什么问题,但是一旦我尝试在设备上运行它,它就可以无需更改任何东西了!

令人沮丧的是,试图为这种奇怪的事情寻找解决方案,但希望这会帮助任何经历类似事物的人。

如果您正在使用Scenekit做某事,并且会遇到这样的奇异错误,请尝试在设备上运行它,然后再撕掉太多的头发。

相关内容

最新更新