w0lfschild/moreMenu

Crashes

Closed this issue · 5 comments

Every app that I try to open crashes after a second with this plugin installed. Any ideas why?

I'm on 10.13.5

Crash log?

Taken from Console.app (Using Dictionary.app as an example)

Process:               Dictionary [1207]
Path:                  /Applications/Dictionary.app/Contents/MacOS/Dictionary
Identifier:            com.apple.Dictionary
Version:               2.2.2 (203)
Build Info:            DictionaryApplications_executables-203000000000000~480
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           Dictionary [1207]
User ID:               501

Date/Time:             2018-07-31 18:15:29.762 +0200
OS Version:            Mac OS X 10.13.5 (17F77)
Report Version:        12
Anonymous UUID:        A48A9AF2-0408-7C3B-AD11-094A21799BF4


Time Awake Since Boot: 350 seconds

System Integrity Protection: disabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Application Specific Information:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSMenu setItemArray:]: unrecognized selector sent to instance 0x600000074700'
terminating with uncaught exception of type NSException
abort() called

Application Specific Backtrace 1:
0   CoreFoundation                      0x00007fff3710232b __exceptionPreprocess + 171
1   libobjc.A.dylib                     0x00007fff5e270c76 objc_exception_throw + 48
2   CoreFoundation                      0x00007fff3719ae04 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132
3   CoreFoundation                      0x00007fff37078870 ___forwarding___ + 1456
4   CoreFoundation                      0x00007fff37078238 _CF_forwarding_prep_0 + 120
5   moreMenu                            0x000000010db91937 -[moreMenu hide] + 263
6   moreMenu                            0x000000010db91d7e -[moreMenu toggleMenu:] + 126
7   moreMenu                            0x000000010db92307 __35-[wb_NSMenuHook _updateForTracking]_block_invoke + 87
8   libdispatch.dylib                   0x00007fff5ee50db8 _dispatch_client_callout + 8
9   libdispatch.dylib                   0x00007fff5ee63e81 _dispatch_continuation_pop + 472
10  libdispatch.dylib                   0x00007fff5ee53081 _dispatch_source_invoke + 620
11  libdispatch.dylib                   0x00007fff5ee5c221 _dispatch_main_queue_callback_4CF + 776
12  CoreFoundation                      0x00007fff370bac69 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
13  CoreFoundation                      0x00007fff3707ce4a __CFRunLoopRun + 2586
14  CoreFoundation                      0x00007fff3707c1a3 CFRunLoopRunSpecific + 483
15  HIToolbox                           0x00007fff36362d96 RunCurrentEventLoopInMode + 286
16  HIToolbox                           0x00007fff36362b06 ReceiveNextEventCommon + 613
17  HIToolbox                           0x00007fff36362884
... 

Thanks for your help!

Thanks for that, I'll look into it.

It seems that version 0.2.1 doesn't have this problem.

For other people who are finding this by searching for this error: The problem is that -[NSMenu setItemArray:] is available on macOS 10.14 and higher, but Xcode does not warn about it not being available on macOS 10.13 and lower. This can cause apps to ship which call this method on a system where it does not exist. Fix: Use -[NSMenu addItem:] in a loop instead.

See OpenRadar