仅在从iOS8升级到iOS 9.2后,应用程序才会在第二次启动时崩溃

时间:2015-12-28 13:57:48

标签: ios xcode scenekit ios9.2

我有SceneKit project启动并完美运行。然后,一旦关闭并重新启动,无论是通过Xcode还是设备本身(从后台关闭并重新启动),它会立即崩溃,导致访问不良。

关于这一点的有趣之处在于,我从几个月前打开了项目的备份,没有出现这个问题并导致同样的问题。唯一的区别是我现在在我的测试设备上运行Xcode 7iOS 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

2 个答案:

答案 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粒子发射器相关的已知错误。删除节点或降低出生率已经停止了崩溃。