GameCenter crashes since iOS 13

Since the release of iOS 13 we experience increasing crash-rate within GameKit.


#1: Number one crash for iOS 13

Crashed: com.apple.main-thread
0  libobjc.A.dylib                0x1b4ec1030 objc_retain + 16
1  GameCenterFoundation           0x1e1e26aa0 -[GKAchievementDescription initWithInternalRepresentation:] + 96
2  GameCenterFoundation           0x1e1e27314 __85+[GKAchievementDescription loadAchievementDescriptionsForGame:withCompletionHandler:]_block_invoke.122 + 220
3  CoreFoundation                 0x1b5184d90 __invoking___ + 144
4  CoreFoundation                 0x1b5054bd0 -[NSInvocation invoke] + 300
5  GameCenterFoundation           0x1e1e76f44 -[NSInvocation(GKProxyHelpers) _gkInvokeOnce] + 28
6  GameCenterFoundation           0x1e1e68e08 __53-[GKDaemonProxy connection:handleInvocation:isReply:]_block_invoke + 32
7  libdispatch.dylib              0x1b4e4b610 _dispatch_call_block_and_release + 24
8  libdispatch.dylib              0x1b4e4c184 _dispatch_client_callout + 16
9  libdispatch.dylib              0x1b4dfe1d0 _dispatch_main_queue_callback_4CF$VARIANT$mp + 1044
10 CoreFoundation                 0x1b50fc3c4 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
11 CoreFoundation                 0x1b50f73b8 __CFRunLoopRun + 2004
12 CoreFoundation                 0x1b50f68bc CFRunLoopRunSpecific + 464
13 GraphicsServices               0x1bef62328 GSEventRunModal + 104
14 UIKitCore                      0x1b918c6d4 UIApplicationMain + 1936


#2: Number two: -[__NSArrayM objectAtIndexedSubscript:]: index 0 beyond bounds for empty array

Fatal Exception: NSRangeException
0  CoreFoundation                 0x1a87a3278 __exceptionPreprocess
1  libobjc.A.dylib                0x1a84cc0a4 objc_exception_throw
2  CoreFoundation                 0x1a87f85d8 -[__NSCFString characterAtIndex:].cold.1
3  CoreFoundation                 0x1a868d6f4 -[__NSArrayM objectAtIndexedSubscript:]
4  GameCenterUI                   0x1c83e14f0 -[GKNotificationBannerViewController supportedInterfaceOrientations]
5  UIKitCore                      0x1ac19d4c4 -[UIViewController __supportedInterfaceOrientations]
6  UIKitCore                      0x1ac18e8f4 -[UIViewController _preferredInterfaceOrientationGivenStatusBarAndDeviceAndOrientation:]
7  UIKitCore                      0x1ac7c4278 -[UIWindow _updateToInterfaceOrientation:duration:force:]
8  CoreFoundation                 0x1a86fe9ac __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__
9  CoreFoundation                 0x1a86fe9f4 ___CFXRegistrationPost1_block_invoke
10 CoreFoundation                 0x1a86fdd54 _CFXRegistrationPost1
11 CoreFoundation                 0x1a86fda20 ___CFXNotificationPost_block_invoke
12 CoreFoundation                 0x1a8679d38 -[_CFXNotificationRegistrar find:object:observer:enumerator:]
13 CoreFoundation                 0x1a86fd370 _CFXNotificationPost
14 Foundation                     0x1a8a59cf8 -[NSNotificationCenter postNotificationName:object:userInfo:]
15 UIKitCore                      0x1ac77b2f8 -[UIApplication _stopDeactivatingForReason:]
16 UIKitCore                      0x1abf6e7d4 -[_UISceneLifecycleMultiplexer _performBlock:withApplicationOfDeactivationReasons:fromReasons:]
17 UIKitCore                      0x1abf6eb14 -[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:]
18 UIKitCore                      0x1abf6e3d8 -[_UISceneLifecycleMultiplexer uiScene:transitionedFromState:withTransitionContext:]
19 UIKitCore                      0x1abde66f8 -[UIScene _invalidate]
20 UIKitCore                      0x1ac9ac7f4 -[UIWindowScene _invalidate]
21 UIKitCore                      0x1ac782158 -[UIApplication workspace:willDestroyScene:withTransitionContext:completion:]
22 UIKitCore                      0x1ac34d268 -[UIApplicationSceneClientAgent scene:willInvalidateWithEvent:completion:]
23 FrontBoardServices             0x1ad8019ac -[FBSSceneImpl _callOutQueue_agent_willDestroyWithTransitionContext:completion:]
24 FrontBoardServices             0x1ad829748 __84-[FBSWorkspaceScenesClient _queue_invalidateScene:withTransitionContext:completion:]_block_invoke_2
25 FrontBoardServices             0x1ad80c390 -[FBSWorkspace _calloutQueue_executeCalloutFromSource:withBlock:]
26 FrontBoardServices             0x1ad8295c0 __84-[FBSWorkspaceScenesClient _queue_invalidateScene:withTransitionContext:completion:]_block_invoke
27 libdispatch.dylib              0x1a84711cc _dispatch_client_callout
28 libdispatch.dylib              0x1a841a0f8 _dispatch_block_invoke_direct$VARIANT$mp
29 FrontBoardServices             0x1ad84e210 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__
30 FrontBoardServices             0x1ad84dedc -[FBSSerialQueue _queue_performNextIfPossible]
31 FrontBoardServices             0x1ad84e404 -[FBSSerialQueue _performNextFromRunLoopSource]
32 CoreFoundation                 0x1a8721090 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
33 CoreFoundation                 0x1a8720fe8 __CFRunLoopDoSource0
34 CoreFoundation                 0x1a87207d0 __CFRunLoopDoSources0
35 CoreFoundation                 0x1a871b8cc __CFRunLoopRun
36 CoreFoundation                 0x1a871b16c CFRunLoopRunSpecific
37 GraphicsServices               0x1b2553328 GSEventRunModal
38 UIKitCore                      0x1ac785d0c UIApplicationMain


#3: Number three

Crashed: com.apple.main-thread
0  libobjc.A.dylib                0x1a0526238 objc_retain + 8
1  GameCenterFoundation           0x1ce12e940 __85+[GKAchievementDescription loadAchievementDescriptionsForGame:withCompletionHandler:]_block_invoke.122 + 224
2  CoreFoundation                 0x1a07f8724 __invoking___ + 148
3  CoreFoundation                 0x1a06c1280 -[NSInvocation invoke] + 344
4  GameCenterFoundation           0x1ce181e84 -[NSInvocation(GKProxyHelpers) _gkInvokeOnce] + 32
5  GameCenterFoundation           0x1ce173304 __53-[GKDaemonProxy connection:handleInvocation:isReply:]_block_invoke + 36
6  libdispatch.dylib              0x1a0497bb0 _dispatch_call_block_and_release + 32
7  libdispatch.dylib              0x1a049900c _dispatch_client_callout + 20
8  libdispatch.dylib              0x1a04a4cd8 _dispatch_main_queue_callback_4CF + 968
9  CoreFoundation                 0x1a076ce20 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16
10 CoreFoundation                 0x1a0767b7c __CFRunLoopRun + 1980
11 CoreFoundation                 0x1a0767098 CFRunLoopRunSpecific + 480
12 GraphicsServices               0x1aa8d1534 GSEventRunModal + 108
13 UIKitCore                      0x1a48877ac UIApplicationMain + 1940


Can it be fixed on our side? Any ideas on the root causes?


Thank you.

Replies

We are also experiencing #2, and it stands for the majority of our crashes.


We are using GameCenter through Unity and the Prime31 plugin.

I also has this crash!

We get alot of #2 in our games.


Finding alot of entries online, and they all seem to point to GameCenter.


has anyone any update on a workaround to avoid these crash reports ?

I recently got a report which I believe is the same thing, on iPhone8,2; iOS 13.3.1.


And looking at the crashes for another app, there are at least 3 in -[GKNotificationBannerViewController supportedInterfaceOrientations].

We have a lot of #2 from our users

Apple can you please fix it?

Hi, we are having the same issue.
Did you found any work around?
We're hitting this issue as well. Specifically callstack #2 above.

Anyone find any work around or hack to avoid the crash even if it disables Game Center for some.

We're unable to reproduce it on any of our devices to diagnose it.
Thanks for reporting these -

For #1 and #3 please could you create bugreuports at http://bugreport.apple.com, or through the inbuilt feedback assistant, with a sysdiagnose attached and steps if you’re able to reproduce them

For #2 we believe the -[GKNotificationBannerViewController supportedInterfaceOrientations] crashes are fixed this in iOS 14 beta 1. If you continue to see this crash in that version of iOS or onwards please file again at bug report.apple.com as above