我們正在開發一款SpriteKit iOS7遊戲,遊戲效果很好,但是如果我們整合了以下任何一個庫,它會在發送到後臺時崩潰: - 飛艇。- Bugsense。 - Apptentive。墜毀:com.apple.spritekit.renderQueue
這裏是Crashlytics崩潰報告:
主題:崩潰:com.apple.spritekit.renderQueue
0 libGPUSupportMercury.dylib 0x3478b8f6 gpus_ReturnNotPermittedKillClient
1 libGPUSupportMercury.dylib 0x3478c391 gpusSubmitDataBuffers
2 IMGSGX543GLDriver 0x2ec9982d SubmitPackets
3 GLEngine 0x320fbc3d gliPresentViewES + 172
4 OpenGLES 0x32106139 -[EAGLContext presentRenderbuffer:] + 64
5 SpriteKit 0x325701b1 -[SKView _renderContent] + 1216
6 libdispatch.dylib 0x3a6fdd07 _dispatch_client_callout + 22
7 libdispatch.dylib 0x3a703b9f _dispatch_barrier_sync_f_invoke + 26
8 SpriteKit 0x3256fcc3 -[SKView renderContent] + 82
9 SpriteKit 0x3256d663 __29-[SKView setUpRenderCallback]_block_invoke + 130
10 SpriteKit 0x3258fddb -[SKDisplayLink _callbackForNextFrame:] + 254
11 QuartzCore 0x3234f9cf CA::Display::DisplayLinkItem::dispatch() + 98
12 QuartzCore 0x3234f779 CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 344
13 IOMobileFramebuffer 0x34f4576d IOMobileFramebufferVsyncNotifyFunc + 104
14 IOKit 0x30be7a75 IODispatchCalloutFromCFMessage + 248
15 CoreFoundation 0x2fec5e21 __CFMachPortPerform + 136
16 CoreFoundation 0x2fed09df __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 34
17 CoreFoundation 0x2fed097b __CFRunLoopDoSource1 + 346
18 CoreFoundation 0x2fecf14f __CFRunLoopRun + 1398
19 CoreFoundation 0x2fe39c27 CFRunLoopRunSpecific + 522
20 CoreFoundation 0x2fe39a0b CFRunLoopRunInMode + 106
21 GraphicsServices 0x34b29283 GSEventRunModal + 138
22 UIKit 0x326dd049 UIApplicationMain + 1136
23 SplishyFish 0x000a95d1 main (main.m:16)
'gpus_ReturnNotPermittedKillClient'幾乎總是表明你在應用程序處於後臺時渲染OpenGL ES內容。發生這種情況時,您的應用程序會立即死亡您需要確保Sprite Kit在開始轉換到背景後不會嘗試渲染任何東西。 –
@BradLarson但是爲什麼只有當我包含這些庫(Airship,Bugsense或Apptentive)之一時纔會崩潰,並且在我沒有改變任何代碼的情況下,我都會對它們進行評論而不會崩潰。我應該如何使用spritekit在app進入後臺時停止渲染? –
你是否可以在模擬器的調試器中重現這一點?你可以用這種方式縮小範圍。 – prototypical