Swift 如果应用程序将/didFinishLaunching方法存在,Mac Catalyst应用程序将在启动时崩溃
我有个很奇怪的问题 我的Mac Catalyst应用程序在启动时崩溃,AppDelegate.swift中出现以下异常:Swift 如果应用程序将/didFinishLaunching方法存在,Mac Catalyst应用程序将在启动时崩溃,swift,macos,appdelegate,mac-catalyst,Swift,Macos,Appdelegate,Mac Catalyst,我有个很奇怪的问题 我的Mac Catalyst应用程序在启动时崩溃,AppDelegate.swift中出现以下异常: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSDictionaryM setObject:forKey:]: object cannot be nil (key: title)' 一些信息是,该项目是一个从现有的iOS/iPadOS
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSDictionaryM setObject:forKey:]: object cannot be nil (key: title)'
一些信息是,该项目是一个从现有的iOS/iPadOS应用程序移植的Mac Catalyst应用程序,它不使用SwiftUI,也不使用多个场景。AppDelegate类中发生异常
但是,调试器指向类声明行,而不是我编写的任何代码,因此我认为这是一个内部错误
有趣的是,我仔细研究了一下,确定从我的AppDelegate中删除应用程序(\uU3:willFinishLaunchingWithOptions:)
和应用程序(\uU3:didFinishLaunchingWithOptions:)
方法的那一刻,应用程序运行得很好。即使是这样一个空洞的声明:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
return true
}
将导致应用程序崩溃,而完全不包含该方法将允许应用程序正常运行
以下是堆栈跟踪:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSDictionaryM setObject:forKey:]: object cannot be nil (key: title)'
*** First throw call stack:
(
0 CoreFoundation 0x00007fff35ac5d07 __exceptionPreprocess + 250
1 libobjc.A.dylib 0x00007fff6e7ea5bf objc_exception_throw + 48
2 CoreFoundation 0x00007fff35b7463e -[__NSCFString characterAtIndex:].cold.1 + 0
3 CoreFoundation 0x00007fff35b7f19c -[__NSDictionaryM setObject:forKey:].cold.3 + 0
4 CoreFoundation 0x00007fff35a03459 -[__NSDictionaryM setObject:forKey:] + 976
5 UIKitCore 0x00007fff764748eb -[_UIMenuBarItem properties] + 99
6 UIKitMacHelper 0x00007fff66bf872a UINSNSMenuItemFromUINSMenuItem + 90
7 UIKitMacHelper 0x00007fff66bf8340 _insertUINSMenuItemsIntoNSMenu + 1135
8 UIKitMacHelper 0x00007fff66bf7da8 UINSNSMenuFromUINSMenu + 119
9 UIKitMacHelper 0x00007fff66bf7c49 -[UINSMenuController _createNSMenu:forContextMenu:] + 79
10 UIKitMacHelper 0x00007fff66bf7b09 -[UINSMenuController setMainMenuBar:] + 70
11 UIKitCore 0x00007fff764687d6 -[_UIMenuBarController _rebuildRootCommandGroup] + 229
12 UIKitCore 0x00007fff763113a2 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 801
13 UIKitCore 0x00007fff76310a33 -[UIApplication _callInitializationDelegatesWithActions:forCanvas:payload:fromOriginatingProcess:] + 5775
14 UIKitCore 0x00007fff7630de2b -[UIApplication _runWithMainScene:transitionContext:completion:] + 1319
15 UIKitCore 0x00007fff7630d7fb -[_UISceneLifecycleMultiplexer completeApplicationLaunchWithFBSScene:transitionContext:] + 122
16 UIKitCore 0x00007fff76308a07 _UIScenePerformActionsWithLifecycleActionMask + 83
17 UIKitCore 0x00007fff7630cf45 __101-[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:]_block_invoke + 198
18 UIKitCore 0x00007fff7630cd28 -[_UISceneLifecycleMultiplexer _performBlock:withApplicationOfDeactivationReasons:fromReasons:] + 467
19 UIKitCore 0x00007fff7630bf21 -[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:] + 823
20 UIKitCore 0x00007fff7630bb42 -[_UISceneLifecycleMultiplexer uiScene:transitionedFromState:withTransitionContext:] + 350
21 UIKitCore 0x00007fff7678e853 __186-[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:]_block_invoke_2 + 178
22 UIKitCore 0x00007fff7630a0a3 +[BSAnimationSettings(UIKit) tryAnimatingWithSettings:actions:completion:] + 832
23 UIKitCore 0x00007fff763095f2 _UISceneSettingsDiffActionPerformChangesWithTransitionContext + 240
24 UIKitCore 0x00007fff763092bf __186-[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:]_block_invoke + 153
25 UIKitCore 0x00007fff7630920c _UISceneSettingsDiffActionPerformActionsWithDelayForTransitionContext + 84
26 UIKitCore 0x00007fff76308f4a -[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:] + 379
27 UIKitCore 0x00007fff763083cb __64-[UIScene scene:didUpdateWithDiff:transitionContext:completion:]_block_invoke + 685
28 UIKitCore 0x00007fff76307aef -[UIScene _emitSceneSettingsUpdateResponseForCompletion:afterSceneUpdateWork:] + 262
29 UIKitCore 0x00007fff763079a4 -[UIScene scene:didUpdateWithDiff:transitionContext:completion:] + 210
30 UIKitCore 0x00007fff762fa3b8 -[UIApplication workspace:didCreateScene:withTransitionContext:completion:] + 524
31 UIKitCore 0x00007fff762fa122 -[UIApplicationSceneClientAgent scene:didInitializeWithEvent:completion:] + 361
32 FrontBoardServices 0x00007fff5225a25d -[FBSSceneImpl _callOutQueue_agent_didCreateWithTransitionContext:completion:] + 453
33 FrontBoardServices 0x00007fff5225a083 __86-[FBSWorkspaceScenesClient sceneID:createWithParameters:transitionContext:completion:]_block_invoke.156 + 102
34 FrontBoardServices 0x00007fff52259f02 -[FBSWorkspace _calloutQueue_executeCalloutFromSource:withBlock:] + 220
35 FrontBoardServices 0x00007fff52259b0d __86-[FBSWorkspaceScenesClient sceneID:createWithParameters:transitionContext:completion:]_block_invoke + 354
36 libdispatch.dylib 0x000000010091e826 _dispatch_client_callout + 8
37 libdispatch.dylib 0x0000000100922070 _dispatch_block_invoke_direct + 289
38 FrontBoardServices 0x00007fff52259996 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 30
39 FrontBoardServices 0x00007fff52259766 -[FBSSerialQueue _queue_performNextIfPossible] + 441
40 FrontBoardServices 0x00007fff52259593 -[FBSSerialQueue _performNextFromRunLoopSource] + 22
41 CoreFoundation 0x00007fff35a49f12 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
42 CoreFoundation 0x00007fff35a49eb1 __CFRunLoopDoSource0 + 103
43 CoreFoundation 0x00007fff35a49ccb __CFRunLoopDoSources0 + 209
44 CoreFoundation 0x00007fff35a489fa __CFRunLoopRun + 927
45 CoreFoundation 0x00007fff35a47ffe CFRunLoopRunSpecific + 462
46 HIToolbox 0x00007fff3467babd RunCurrentEventLoopInMode + 292
47 HIToolbox 0x00007fff3467b6f4 ReceiveNextEventCommon + 359
48 HIToolbox 0x00007fff3467b579 _BlockUntilNextEventMatchingListInModeWithFilter + 64
49 AppKit 0x00007fff32cc6c99 _DPSNextEvent + 883
50 AppKit 0x00007fff32cc54e0 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1352
51 AppKit 0x00007fff32cb71ee -[NSApplication run] + 658
52 AppKit 0x00007fff32c88ff6 NSApplicationMain + 777
53 AppKit 0x00007fff32faaa85 _NSApplicationMainWithInfoDictionary + 16
54 UIKitMacHelper 0x00007fff66bf4e00 UINSApplicationMain + 322
55 UIKitCore 0x00007fff762db6ff UIApplicationMain + 2130
56 <Project Name> 0x00000001002222db main + 75
57 libdyld.dylib 0x00007fff6f991cc9 start + 1
58 ??? 0x0000000000000003 0x0 + 3
)
libc++abi.dylib: terminating with uncaught exception of type NSException
***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“***-[\uu NSDictionaryM setObject:forKey:]:对象不能为零(键:title)”
***第一次抛出调用堆栈:
(
0 CoreFoundation 0x00007fff35ac5d07例外预处理+250
1 libobjc.A.dylib 0x00007fff6e7ea5bf objc_异常_抛出+48
2 CoreFoundation 0x00007fff35b7463e-[\uu NSCFString characterAtIndex:]冷。1+0
3 CoreFoundation 0x00007fff35b7f19c-[\uu NSDictionaryM setObject:forKey:][.cold.3+0
4 CoreFoundation 0x00007fff35a03459-[\uu\NSDictionaryM setObject:forKey:][976
5 UIKitCore 0x00007FFF76474EB-[\u UIMenuBarItem属性]+99
6 UIKitMacHelper 0x00007fff66bf872a UINSSMENUITEMFROM UINSMENUITEM+90
7 UIKitMacHelper 0x00007fff66bf8340 _InsertuisinMenuItemsInTonsMenu+1135
8 UIKitMacHelper 0x00007fff66bf7da8 UINSSMENUMOUFROMUINSMENU+119
9 UIKitMacHelper 0x00007fff66bf7c49-[UINSMenuController\u createNSMenu:forContextMenu:+79
10 UIKitMacHelper 0x00007fff66bf7b09-[UINSMenuController setMainMenuBar:+70
11 UIKitCore 0x00007fff764687d6-[\u UIMenuBarController\u RebuildDrootCommand Group]+229
12 UIKitCore 0x00007fff763113a2-[UIApplication\u处理的远程回调,带选项:isSuspended:restoreState:+801
13 UIKitCore 0x00007fff76310a33-[UIApplication\u CallInitializationDelegates操作:forCanvas:有效负载:FromorigingProcess:+5775
14 UIKitCore 0x00007fff7630de2b-[UIApplication\u在主场景中运行:transitionContext:completion:][1319
15 UIKitCore 0x00007fff7630d7fb-[\u UISceneLifecycleMultiplexer Complete应用程序启动与FBSSCene:transitionContext:+122
16 UIKitCore 0x00007fff76308a07 _UISCeneperformanceswithithrifecycleActionMask+83
17 UIKitCore 0x00007fff7630cf45\uuuu101-[\uUISCeneLifeCycleMultiplexer\u evaltTransitionToSettings:fromSettings:forceExit:withTransitionStore:]\u block\u invoke+198
18 UIKitCore 0x00007fff7630cd28-[\u UISceneLifecycleMultiplexer\u性能锁:带应用程序的FDEActivation原因:FromReasions:+467
19 UIKitCore 0x00007fff7630bf21-[\u UISceneLifecycleMultiplexer\u评估转换到设置:从设置:强制退出:带转换存储:][823
20 UIKitCore 0x00007fff7630bb42-[\u UISceneLifecycleMultiplexer uiScene:transitionedFromState:withTransitionContext:+350
21 UIKitCore 0x00007fff7678e853\uuu186-[\uUIWindowsCENEFBSCSCENETransionContextDrivenLifecycleSettingsDiffAction\uPerformancesFuiScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:\ uBlock\uInvoke\u2+178
22 UIKitCore 0x00007fff7630a0a3+[B动画设置(UIKit)尝试使用设置进行动画:操作:完成:+832
23 UIKitCore 0x00007fff763095f2 _UISceneSettingsDiffActionPerformChangesWithTransitionContext+240
24 UIKitCore 0x00007fff763092bf uu 186-[\uUIWindowsCENEFBSCSCSCENETransionContextDrivenLifecycleSettingsDiffAction\uPerformancesFuiScene:With UpdatedFBSSCene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:\ uBlock\uInvoke+153
25 UIKitCore 0x00007fff7630920c _UISCenesetingsDiffactionPerformanceswithDelayforTransitionContext+84
26 UIKitCore 0x00007fff76308f4a-[\u UIWindowsCENEFFBSSCENETRANSIONCONTEXTDRIVENLIFECYCLESETTINGSDIFFACTION\u性能场景:更新FBSSCene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:+379
27 UIKitCore 0x00007fff763083cb uu 64-[UIScene场景:didUpdateWithDiff:transitionContext:completion:][u block\u invoke+685
28 UIKitCore 0x00007fff76307aef-[UIScene\u emitscenesetingsupdate完成前响应:赛后更新工作:][262
29 UIKitCore 0x00007fff763079a4-[UIScene场景:didUpdateWithDiff:transitionContext:completion:+210
30 UIKitCore 0x00007fff762fa3b8-[UIApplication工作区:didCreateScene:withTransitionContext:completion:+524
31 UIKitCore 0x00007fff762fa122-[UIApplicationSceneClientAgent场景:未初始化事件:完成:][361
32 FrontBoardServices 0x00007fff5225a25d-[FBSSceneImpl\u callout queue\u agent\u didCreateWithTransitionContext:completion:+453