Search code examples
iosobjective-cmacosmac-catalyst

Mac Catalyst app crashed on other mac, but works when run from Xcode


I have an issue distributing my Mac catalyst application to testers, while it is running normally on my machine, it is immediately crashing after launching on others, without any human-understandable crash report.

Moreover, when we run it on that mac with Xcode it is working normal and crashes when it is shipped to my mac. Here what I did - I am using Xcode 11.3.1, the application is automatically signed, I notarized it without error before shipping.

Does anyone have an idea why it is crashing?

Application Specific Information:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]'
terminating with uncaught exception of type NSException
abort() called
Application Specific Backtrace 1:
0   CoreFoundation                      0x00007fff3913a8ab __exceptionPreprocess + 250
1   libobjc.A.dylib                     0x00007fff6f3f4805 objc_exception_throw + 48
2   CoreFoundation                      0x00007fff391e98ae _CFThrowFormattedException + 202
3   CoreFoundation                      0x00007fff391f424b -[__NSPlaceholderDictionary initWithObjects:forKeys:count:].cold.5 + 0
4   CoreFoundation                      0x00007fff39044d69 -[__NSPlaceholderDictionary initWithObjects:forKeys:count:] + 235
5   CoreFoundation                      0x00007fff39044c66 +[NSDictionary dictionaryWithObjects:forKeys:count:] + 59
6   CoinStats                           0x0000000108e5cbbf CoinStats + 2198463
7   UIKitCore                           0x00007fff76fa6657 -[UIViewController _sendViewDidLoadWithAppearanceProxyObjectTaggingEnabled] + 83
8   UIKitCore                           0x00007fff76f8fc50 -[UIViewController loadViewIfRequired] + 1023
9   UIKitCore                           0x00007fff76f8f83e -[UIViewController view] + 27
10  UIKit                               0x00007fff70a187df -[UISplitViewControllerAccessibility _axModalizeViewControllerViews] + 309
11  UIKit                               0x00007fff70a18a8c -[UISplitViewControllerPanelImplAccessibility loadView] + 158
12  UIKitCore                           0x00007fff76f8f8fd -[UIViewController loadViewIfRequired] + 172
13  UIKitCore                           0x00007fff76f8f83e -[UIViewController view] + 27
14  CoinStats                           0x0000000108c99b5f CoinStats + 351071
15  UIKitCore                           0x00007fff77b8361f -[UIStoryboardSegueTemplate _performWithDestinationViewController:sender:] + 276
16  UIKitCore                           0x00007fff77b834dd -[UIStoryboardSegueTemplate _perform:] + 82
17  UIKitCore                           0x00007fff775a477a -[UIViewController performSegueWithIdentifier:sender:] + 99
18  UIKit                               0x00007fff70a92720 -[UIViewControllerAccessibility performSegueWithIdentifier:sender:] + 102
19  CoinStats                           0x0000000108d937d7 CoinStats + 1374167
20  CoinStats                           0x0000000108d91ed7 CoinStats + 1367767
21  UIKitCore                           0x00007fff76fa6657 -[UIViewController _sendViewDidLoadWithAppearanceProxyObjectTaggingEnabled] + 83
22  UIKitCore                           0x00007fff76f8fc50 -[UIViewController loadViewIfRequired] + 1023
23  UIKitCore                           0x00007fff76f8f83e -[UIViewController view] + 27
24  UIKitCore                           0x00007fff76fe99c5 -[UIWindow addRootViewControllerViewIfPossible] + 156
25  UIKitCore                           0x00007fff76f7c8e3 -[UIWindow _updateLayerOrderingAndSetLayerHidden:actionBlock:] + 210
26  UIKitCore                           0x00007fff76fe7944 -[UIWindow _setHidden:forced:] + 361
27  UIKit                               0x00007fff70a18944 -[UIWindowAccessibility _orderFrontWithoutMakingKey] + 86
28  UIKitCore                           0x00007fff76fe7787 -[UIWindow _mainQueue_makeKeyAndVisible] + 42
29  CoinStats                           0x0000000108dbd543 CoinStats + 1545539
30  UIKitCore                           0x00007fff76f710d0 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 312
31  UIKitCore                           0x00007fff76f70947 -[UIApplication _callInitializationDelegatesWithActions:forCanvas:payload:fromOriginatingProcess:] + 5764
32  UIKitCore                           0x00007fff76f6dd3e -[UIApplication _runWithMainScene:transitionContext:completion:] + 1319
33  UIKitCore                           0x00007fff76f6d70b -[_UISceneLifecycleMultiplexer completeApplicationLaunchWithFBSScene:transitionContext:] + 122
34  UIKitCore                           0x00007fff76f6890b _UIScenePerformActionsWithLifecycleActionMask + 83
35  UIKitCore                           0x00007fff76f6ce55 __101-[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:]_block_invoke + 198
36  UIKitCore                           0x00007fff76f6cc34 -[_UISceneLifecycleMultiplexer _performBlock:withApplicationOfDeactivationReasons:fromReasons:] + 467
37  UIKitCore                           0x00007fff76f6be39 -[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:] + 823```

Solution

  • Okay after long researches I found the issue. We used custom fonts in our application and that caused the crash, seems like it is apple bug, because the fonts are link properly and added in Info.plist. Also on machines where font was installed the application is not crashing. After changing the fonts to similar ones provided by apple the app works perfectly.