我有SceneKit project
启动并完美运行。然后,一旦关闭并重新启动,无论是通过Xcode还是设备本身(从后台关闭并重新启动),它会立即崩溃,导致访问不良。
关于这一点的有趣之处在于,我从几个月前打开了项目的备份,没有出现这个问题并导致同样的问题。唯一的区别是我现在在我的测试设备上运行Xcode 7
和iOS 9.2
,而我正在使用iOS 8
。
项目的目标仍为iOS 8
。
同样值得注意的是它也发生在模拟器中。
编辑:对于广泛的问题抱歉,我正在寻找一个已知的iOS问题,而不是没有代码的神奇修复。
崩溃日志
Incident Identifier: 676B8947-EF5F-4C97-8290-8FE337413E4B
CrashReporter Key: 9b475d8cebee657e23490f227c1da0af5969c462
Hardware Model: iPhone8,1
Process: Control [1617]
Path: /private/var/mobile/Containers/Bundle/Application/E6B75EF7-E649-4D46-9B33-4156ECF64458/Control.app/Control
Version: 1 (1.0)
Code Type: ARM-64 (Native)
Parent Process: launchd [1]
Date/Time: 2015-12-28 23:14:08.08 +1100
Launch Time: 2015-12-28 23:14:07.07 +1100
OS Version: iOS 9.2 (13C75)
Report Version: 105
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000100012140
Triggered by Thread: 7
Filtered syslog:
None found
Global Trace Buffer (reverse chronological seconds):
6148914689.570968 AppleJPEG 0x0000000182a9eb54 [0x14c8a8e00] Releasing session
6148914689.570969 AppleJPEG 0x0000000182aa0ff4 [0x14c8a8e00] Decoding completed without errors
6148914689.572388 AppleJPEG 0x0000000182a9f18c [0x14c8a8e00] Options: 256x256 [FFFFFFFF,FFFFFFFF] 00025060
6148914689.572388 AppleJPEG 0x0000000182a9f044 [0x14c8a8e00] Decoding: C0 0x01000100 0x0000354A 0x11111100 0x00000000 20945
6148914689.574243 AppleJPEG 0x0000000182a9e338 [0x14c8a8e00] Created session
6148914689.574243 AppleJPEG 0x0000000182a9eb54 [0x14c8a8e00] Releasing session
6148914689.574243 AppleJPEG 0x0000000182a9e338 [0x14c8a8e00] Created session
6148914689.574243 AppleJPEG 0x0000000182a9eb54 [0x14c8a8e00] Releasing session
6148914689.578250 AppleJPEG 0x0000000182a9e338 [0x14c8a8e00] Created session
6148914689.578250 AppleJPEG 0x0000000182a9eb54 [0x14c8a8e00] Releasing session
6148914689.578250 AppleJPEG 0x0000000182a9e338 [0x14c8a8e00] Created session
6148914689.578250 AppleJPEG 0x0000000182a9eb54 [0x14c8a8e00] Releasing session
6148914689.650289 AppleJPEG 0x0000000182a9e338 [0x14c8a8e00] Created session
6148914689.650289 AppleJPEG 0x0000000182a9eb54 [0x14d0f9c00] Releasing session
6148914689.651874 AppleJPEG 0x0000000182a9e338 [0x14d0f9c00] Created session
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0:
0 libsystem_kernel.dylib 0x0000000180fc14bc mach_msg_trap + 8
1 libsystem_kernel.dylib 0x0000000180fc1338 mach_msg + 72
2 CoreFoundation 0x00000001813f0ac0 __CFRunLoopServiceMachPort + 196
3 CoreFoundation 0x00000001813ee7c4 __CFRunLoopRun + 1032
4 CoreFoundation 0x000000018131d680 CFRunLoopRunSpecific + 384
5 GraphicsServices 0x000000018282c088 GSEventRunModal + 180
6 UIKit 0x0000000186194d90 UIApplicationMain + 204
7 Control 0x00000001000e9e48 0x1000d0000 + 106056
8 libdyld.dylib 0x0000000180ebe8b8 start + 4
Thread 1 name: Dispatch queue: com.apple.libdispatch-manager
Thread 1:
0 libsystem_kernel.dylib 0x0000000180fdd4fc kevent_qos + 8
1 libdispatch.dylib 0x0000000180ea094c _dispatch_mgr_invoke + 232
2 libdispatch.dylib 0x0000000180e8f7bc _dispatch_source_invoke + 0
Thread 2:
0 libsystem_kernel.dylib 0x0000000180fdcb6c __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x00000001810a1530 _pthread_wqthread + 1284
2 libsystem_pthread.dylib 0x00000001810a1020 start_wqthread + 4
Thread 3:
0 libsystem_kernel.dylib 0x0000000180fdcb6c __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x00000001810a1530 _pthread_wqthread + 1284
2 libsystem_pthread.dylib 0x00000001810a1020 start_wqthread + 4
Thread 4:
0 libsystem_kernel.dylib 0x0000000180fdcb6c __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x00000001810a1530 _pthread_wqthread + 1284
2 libsystem_pthread.dylib 0x00000001810a1020 start_wqthread + 4
Thread 5:
0 libsystem_kernel.dylib 0x0000000180fdcb6c __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x00000001810a1530 _pthread_wqthread + 1284
2 libsystem_pthread.dylib 0x00000001810a1020 start_wqthread + 4
Thread 6:
0 libsystem_kernel.dylib 0x0000000180fdcb6c __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x00000001810a1530 _pthread_wqthread + 1284
2 libsystem_pthread.dylib 0x00000001810a1020 start_wqthread + 4
Thread 7 name: Dispatch queue: com.apple.scenekit.renderingQueue.GameView0x14c65dd30
Thread 7 Crashed:
0 libdispatch.dylib 0x0000000180e90090 dispatch_semaphore_signal + 4
1 Jet 0x000000018eb21f80 jet_context::clear_fenced_buffers(std::__1::shared_ptr<jet_fence>) + 100
2 Jet 0x000000018eb2d834 jet_context_Metal::create_fence() + 168
3 Jet 0x000000018eb2d6c4 jet_context_Metal::commit() + 36
4 Jet 0x000000018eb2bf50 jet_context_Metal::begin_render_pass(jet_framebuffer*) + 156
5 Jet 0x000000018eb1fdc0 jet_context::execute_command_buffer(jet_command_buffer*) + 1528
6 Jet 0x000000018eb200f0 jet_context::submit_command_buffer_impl(jet_command_buffer*) + 56
7 SpriteKit 0x000000018ed16764 SKCRenderer::flushRenderOps() + 272
8 SpriteKit 0x000000018ed1883c SKCRenderer::render(SKCNode*, float vector[4], std::__1::shared_ptr<jet_framebuffer> const&, unsigned int vector[4], matrix_float4x4, bool, NSDictionary*, SKCStats*, SKCStats*) + 1740
9 SpriteKit 0x000000018ec83e74 -[SKSCNRenderer renderWithEncoder:pass:commandQueue:] + 520
10 SceneKit 0x000000018f825c08 -[SCNRenderer _drawOverlaySceneAtTime:] + 316
11 SceneKit 0x000000018f88403c __C3DEngineContextRenderPassInstance + 628
12 SceneKit 0x000000018f885020 C3DEngineContextRenderMainTechnique + 1352
13 SceneKit 0x000000018f824d28 -[SCNRenderer _renderScene:sceneTime:] + 364
14 SceneKit 0x000000018f824e78 -[SCNRenderer _drawSceneWithNewRenderer:] + 264
15 SceneKit 0x000000018f825378 -[SCNRenderer _drawScene:] + 84
16 SceneKit 0x000000018f82567c -[SCNRenderer _draw] + 636
17 SceneKit 0x000000018f87ea6c -[SCNView _drawAtTime:] + 464
18 SceneKit 0x000000018f8553a8 __49-[SCNDisplayLink _callbackWithTime:andDeltaTime:]_block_invoke + 96
19 libdispatch.dylib 0x0000000180e8d630 _dispatch_call_block_and_release + 24
20 libdispatch.dylib 0x0000000180e8d5f0 _dispatch_client_callout + 16
21 libdispatch.dylib 0x0000000180e99634 _dispatch_queue_drain + 864
22 libdispatch.dylib 0x0000000180e910f4 _dispatch_queue_invoke + 464
23 libdispatch.dylib 0x0000000180e9b504 _dispatch_root_queue_drain + 728
24 libdispatch.dylib 0x0000000180e9daa8 _dispatch_worker_thread + 124
25 libsystem_pthread.dylib 0x00000001810a3b28 _pthread_body + 156
26 libsystem_pthread.dylib 0x00000001810a3a8c _pthread_body + 0
27 libsystem_pthread.dylib 0x00000001810a1028 thread_start + 4
Thread 7 crashed with ARM Thread State (64-bit):
x0: 0x0000000100012100 x1: 0x000000016e35e300 x2: 0x0000000000000002 x3: 0x000000014c685660
x4: 0x0000000000000001 x5: 0x0000000000000000 x6: 0x0000000180a9d974 x7: 0x0000000000000000
x8: 0x000000014c662200 x9: 0x0000008a00012000 x10: 0x0000000100012140 x11: 0x0000000000000000
x12: 0x0000000000049410 x13: 0x0000000000049410 x14: 0x00000000ffffffff x15: 0x00000000ffffffec
x16: 0x0000000180e9008c x17: 0x000000018edbd848 x18: 0x0000000000000000 x19: 0x000000014c6aeb60
x20: 0x000000016e35e300 x21: 0x000000014c6d0ea0 x22: 0x000000014c684ba0 x23: 0x000000014c65a080
x24: 0x000000014c6f6fc0 x25: 0x000000014c685660 x26: 0x00000000000003c0 x27: 0x0000000000000280
x28: 0x000000014d908df0 fp: 0x000000016e35e2f0 lr: 0x000000018eb21f80
sp: 0x000000016e35e2c0 pc: 0x0000000180e90090 cpsr: 0x00000000
答案 0 :(得分:1)
崩溃在渲染器中。我想知道你是不是在发现金属中的一个错误?这是现在的默认渲染器,但它是iOS 8 SDK中的OpenGL。
查看SCNView
SCNPreferredRenderingAPI
:
SceneKit尝试使用您在initWithFrame中指定的首选API初始化视图:options:initializer;如果当前设备不支持首选API,则SceneKit会自动回退到支持的API。初始化后,使用renderingAPI属性来确定是否发生了回退。例如,如果在不支持Metal的iOS设备上初始化视图时指定SCNRenderingAPIMetal选项,则SceneKit默认为SCNRenderingAPIOpenGLES2选项。
但是,由于您的目标是iOS 8,因此您无法使用该属性。但你可以set the preferred renderer using your Info.plist。试试看,看看行为是否有所改变。
答案 1 :(得分:0)
它似乎源于9.2中与SpriteKit粒子发射器相关的已知错误。删除节点或降低出生率已经停止了崩溃。