【问题标题】:Mac Catalyst app crashed on other mac, but works when run from XcodeMac Catalyst 应用程序在其他 Mac 上崩溃,但从 Xcode 运行时可以工作
【发布时间】:2020-06-22 07:10:18
【问题描述】:

我在将我的 Mac 催化剂应用程序分发给测试人员时遇到问题,当它在我的机器上正常运行时,它在其他机器上启动后立即崩溃,没有任何人类可以理解的崩溃报告。

此外,当我们使用 Xcode 在该 Mac 上运行它时,它工作正常,但在发送到我的 Mac 时崩溃。 这是我所做的 - 我使用的是 Xcode 11.3.1,应用程序是自动签名的,我在发货前对其进行了公证,没有错误。

有人知道它为什么会崩溃吗?

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```

【问题讨论】:

  • 你能分享你自己的字典对象定义吗?
  • @elia 这是一个非常大的项目,有很多字典对象,我也尝试将它们注释掉,但仍然崩溃,问题是它只在部署时崩溃
  • 我只能假设一些依赖资源是通过绝对路径插入到项目中的,所以它在开发Mac上工作,因为它们在那里,但在其他Mac上崩溃,因为那里没有。

标签: ios objective-c macos catalyst mac-catalyst


【解决方案1】:

好的,经过长时间的研究,我发现了这个问题。我们在我们的应用程序中使用了自定义字体,这导致了崩溃,这似乎是苹果的错误,因为字体正确链接并添加到 Info.plist 中。同样在安装了字体的机器上,应用程序也没有崩溃。将字体更改为苹果提供的类似字体后,该应用程序运行良好。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-21
  • 1970-01-01
  • 2012-02-13
  • 1970-01-01
  • 1970-01-01
  • 2019-12-28
相关资源
最近更新 更多