Macos Swift 2.0 spritekit应用程序崩溃,EXC_访问错误,无法回溯到相关线路
编辑:转换到swift 2.0后的新说明 我正在使用OSX 10.10上现有的Swift 2.0应用程序,它是用XCode 7.1构建的。这是一个运行在Mac Mini上的交互式信息亭应用程序——一个spritekit应用程序,它正在执行一些低级串行通信,以接受来自按钮和一些电位器的输入,尽管这方面没有引起任何问题 我遇到过部署中随机崩溃的问题,这些问题从未出现在开发或测试中,通常在运行时6-8小时后出现。我已经回去了,更仔细地打开了所有的选项,这在一定程度上帮助了稳定性。但我仍然每天都会遇到这个应用程序的崩溃 以下是最新的符号化崩溃日志:Macos Swift 2.0 spritekit应用程序崩溃,EXC_访问错误,无法回溯到相关线路,macos,swift,sprite-kit,Macos,Swift,Sprite Kit,编辑:转换到swift 2.0后的新说明 我正在使用OSX 10.10上现有的Swift 2.0应用程序,它是用XCode 7.1构建的。这是一个运行在Mac Mini上的交互式信息亭应用程序——一个spritekit应用程序,它正在执行一些低级串行通信,以接受来自按钮和一些电位器的输入,尽管这方面没有引起任何问题 我遇到过部署中随机崩溃的问题,这些问题从未出现在开发或测试中,通常在运行时6-8小时后出现。我已经回去了,更仔细地打开了所有的选项,这在一定程度上帮助了稳定性。但我仍然每天都会遇到这
Time Awake Since Boot: 7100 seconds
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x000000000000007c
VM Regions Near 0x7c:
-->
__TEXT 0000000100fee000-000000010100e000 [ 128K] r-x/rwx SM=COW /Users/USER/Documents/Volcano13.app/Contents/MacOS/Volcano
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 com.apple.SpriteKit 0x000000010109fbe3 SKCSprite::removeSubsprite(SKCSprite*) + 131
1 com.apple.SpriteKit 0x00000001010a962d SKCEmitterSprite::~SKCEmitterSprite() + 79
2 com.apple.SpriteKit 0x00000001010a9224 SKCEmitterSprite::~SKCEmitterSprite() + 14
3 com.apple.SpriteKit 0x00000001010cdec6 -[SKNode dealloc] + 34
4 libobjc.A.dylib 0x00007fff85f8b89c objc_object::sidetable_release(bool) + 236
5 com.apple.CoreFoundation 0x00007fff897d5db0 CFRelease + 304
6 com.apple.CoreFoundation 0x00007fff897ea39d -[__NSArrayM dealloc] + 205
7 libobjc.A.dylib 0x00007fff85f8b89c objc_object::sidetable_release(bool) + 236
8 com.apple.SpriteKit 0x00000001010ce024 -[SKNode .cxx_destruct] + 179
9 libobjc.A.dylib 0x00007fff85f76ae8 object_cxxDestructFromClass(objc_object*, objc_class*) + 127
10 libobjc.A.dylib 0x00007fff85f71637 objc_destructInstance + 119
11 libobjc.A.dylib 0x00007fff85f71595 object_dispose + 22
12 com.apple.AppKit 0x00007fff908f1cec -[NSResponder dealloc] + 139
13 com.apple.SpriteKit 0x00000001010cdee5 -[SKNode dealloc] + 65
14 com.apple.SpriteKit 0x00000001010be1b2 -[SKEffectNode dealloc] + 99
15 libobjc.A.dylib 0x00007fff85f8b89c objc_object::sidetable_release(bool) + 236
16 com.apple.SpriteKit 0x0000000101069d52 -[SKView renderCallback:shouldBlock:] + 635
17 com.apple.SpriteKit 0x00000001010675ff __29-[SKView setUpRenderCallback]_block_invoke + 56
18 com.apple.SpriteKit 0x00000001010befbf __39-[SKDisplayLink _callbackForNextFrame:]_block_invoke33 + 32
19 libdispatch.dylib 0x00007fff86e79c13 _dispatch_client_callout + 8
20 libdispatch.dylib 0x00007fff86e8704e _dispatch_barrier_sync_f_slow_invoke + 412
21 libdispatch.dylib 0x00007fff86e79c13 _dispatch_client_callout + 8
22 libdispatch.dylib 0x00007fff86e85cbf _dispatch_main_queue_callback_4CF + 861
23 com.apple.CoreFoundation 0x00007fff898743f9 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
24 com.apple.CoreFoundation 0x00007fff8982f68f __CFRunLoopRun + 2159
25 com.apple.CoreFoundation 0x00007fff8982ebd8 CFRunLoopRunSpecific + 296
26 com.apple.HIToolbox 0x00007fff8c67956f RunCurrentEventLoopInMode + 235
27 com.apple.HIToolbox 0x00007fff8c6792ea ReceiveNextEventCommon + 431
28 com.apple.HIToolbox 0x00007fff8c67912b _BlockUntilNextEventMatchingListInModeWithFilter + 71
29 com.apple.AppKit 0x00007fff908fd8ab _DPSNextEvent + 978
30 com.apple.AppKit 0x00007fff908fce58 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 346
31 com.apple.AppKit 0x00007fff908f2af3 -[NSApplication run] + 594
32 com.apple.AppKit 0x00007fff9086f244 NSApplicationMain + 1832
33 cmnh.Volcano 0x00000001010092b9 main (in Volcano) (AppDelegate.swift:23)
34 libdyld.dylib 0x00007fff8dd315c9 start + 1
在我看来,这似乎表明在我的一个场景结束后移除SKEmitter精灵有问题,但并没有指出比这更具体的问题
我使用XCode中的场景编辑器添加了两个SKEmitter精灵,它们都是静止的,没有目标节点。我会在场景控制器中暂停并取消暂停它们,但不会对它们执行其他操作。事实上,我没有在控制器中添加或删除任何节点-场景中需要的所有内容都与场景的SKS文件中包含的内容相同
有什么建议吗?您有没有真正好的理由不能更新到Swift 2.0?大部分情况下,该项目的工作时间有限。我不清楚转换成Swift 2.0是否能解决我在这里看到的问题。好吧,我也不清楚。但这正是Swift 2.0所修复的bug类型,因此如果不尝试,只能怪你自己。我花时间运行了迁移实用程序,并更新了标题和说明。这现在似乎是一个spritekit问题。感谢您的报告,很抱歉更新并没有神奇地修复所有问题:至少你现在有一个完全不同的问题;太好了!这现在似乎是一个内存管理问题;也许你可以通过打开僵尸来更好地了解情况。