macOS26: MenuBarExtra item not showing

Hi, In macOS26 beta, our app icon is not showing anymore in the MenuBar. It is also not displayed in the new section "Menu Bar > Allow in the Menu Bar", which seems to be the way to show/hide Menu Bar icons in macOS 26.

The icon is correctly displayed and working in macOS 15. Our app is signed and notarized. It also has the "LSUIElement" value set to "true" in the Info.plist file.

Is there some new mandatory entitlements to add in order to have our app showing in the "Allow in the Menu Bar" section?

Thanks in advance for your help.

Regards

Answered by DTS Engineer in 852419022

Quinn mentioned this thread to me, so I could jump in…

Hi, In macOS 26 beta, our app icon is not showing anymore in the Menu Bar. It is also not displayed in the new section "Menu Bar > Allow in the Menu Bar", which seems to be the way to show/hide Menu Bar icons in macOS 26.

The icon is correctly displayed and working in macOS 15. Our app is signed and notarized. It also has the "LSUIElement" value set to "true" in the Info.plist file.

Is there some new mandatory entitlements to add in order to have our app showing in the "Allow in the Menu Bar" section?

I happened to be looking into an issue similar to this for another developer, and I have some information that may be helpful. Two things to be aware of:

  1. The engineering team is aware that this is happening and is making some changes (r.155484172) to address those issues, at which point it's possible this will start working for you.

  2. The underlying issue here seems to be that the system is unable to map certain processes back to bundle IDs. WHY that is failing is unclear, and the fix for #1 is going to rely on alternative tracking data (probably executable path) to bypass the issue without attempting to determine or resolve the underlying cause*.

*This might seem like an odd choice, but the issue here is that the range of process configurations that run on macOS is so large and complicated that focusing too much on underlying causes can be counterproductive, as you can end up endlessly chasing edge cases.

My concern here is that #2 can have wide and expected consequences, both now and in the future. So, a few different suggestions and comments here:

  • I would strongly recommend investigating this issue "now" while the status bar issue is still present. The workarounds like #1 are very common throughout the system, which can make it hard to notice something "wrong". This is a good opportunity to use "our bug" to preemptively prevent future problems.

  • I haven't confirmed this, but I suspect the primary cause here is bypassing/replacing NSApplicationMain. While this has long been technically possible, it's never really been recommended and it's only become more problematic over time. If switching to NSApplicationMain() resolves the issue and you’re able to make that transition, then please do so.

  • If you ARE using NSApplicationMain() and are still seeing this issue, then please let me know, as that's an edge case worth investigating further.

  • If you're using a 3rd party framework that bypasses NSApplicationMain(), then I'd recommend contacting them so that they can follow up with us about workarounds and alternatives.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

Hi,

Indeed, I do not see any call to NSApplicationMain just like you have:

Thread 0 Crashed:
0   libsystem_kernel.dylib        	       0x19f8e85b0 __pthread_kill + 8
1   libsystem_pthread.dylib       	       0x19f922848 pthread_kill + 296
2   libsystem_c.dylib             	       0x19f828808 abort + 124
3   kDrive                        	       0x1009954a4 KDC::AppServer::init()::$_1::operator()() const + 20 (appserver.cpp:404)
4   kDrive                        	       0x100995450 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KDC::AppServer::init()::$_1>::call(KDC::AppServer::init()::$_1&, void**) + 44 (qobjectdefs_impl.h:146)
5   kDrive                        	       0x1009953ec void QtPrivate::Functor<KDC::AppServer::init()::$_1, 0>::call<QtPrivate::List<>, void>(KDC::AppServer::init()::$_1&, void*, void**) + 36 (qobjectdefs_impl.h:256)
6   kDrive                        	       0x100995388 QtPrivate::QFunctorSlotObject<KDC::AppServer::init()::$_1, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) + 168 (qobjectdefs_impl.h:420)
7   QtCore                        	       0x10520b0d8 QtPrivate::QSlotObjectBase::call(QObject*, void**) + 20 (qobjectdefs_impl.h:375) [inlined]
8   QtCore                        	       0x10520b0d8 QSingleShotTimer::timerEvent(QTimerEvent*) + 204 (qtimer.cpp:358)
9   QtCore                        	       0x1051ef36c QObject::event(QEvent*) + 88
10  QtWidgets                     	       0x103180740 QApplicationPrivate::notify_helper(QObject*, QEvent*) + 272 (qapplication.cpp:3409)
11  QtWidgets                     	       0x103181974 QApplication::notify(QObject*, QEvent*) + 532
12  QtCore                        	       0x1051af7ac QCoreApplication::notifyInternal2(QObject*, QEvent*) + 208 (qcoreapplication.cpp:1067)
13  QtCore                        	       0x10530bb04 QTimerInfoList::activateTimers() + 840 (qtimerinfo_unix.cpp:639)
14  libqcocoa.dylib               	       0x1037a4624 QCocoaEventDispatcherPrivate::processTimers() + 8 (qcocoaeventdispatcher.mm:131) [inlined]
15  libqcocoa.dylib               	       0x1037a4624 QCocoaEventDispatcherPrivate::activateTimersSourceCallback(void*) + 24 (qcocoaeventdispatcher.mm:125)
16  CoreFoundation                	       0x19f9c1ad8 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28
17  CoreFoundation                	       0x19f9c1a6c __CFRunLoopDoSource0 + 172
18  CoreFoundation                	       0x19f9c17d8 __CFRunLoopDoSources0 + 232
19  CoreFoundation                	       0x19f9c0468 __CFRunLoopRun + 820
20  CoreFoundation                	       0x19fa7e898 _CFRunLoopRunSpecificWithOptions + 532
21  HIToolbox                     	       0x1ac38c714 RunCurrentEventLoopInMode + 316
22  HIToolbox                     	       0x1ac38f99c ReceiveNextEventCommon + 464
23  HIToolbox                     	       0x1ac5191c0 _BlockUntilNextEventMatchingListInMode + 48
24  AppKit                        	       0x1a428a620 _DPSBlockUntilNextEventMatchingListInMode + 236
25  AppKit                        	       0x1a3da6edc _DPSNextEvent + 588
26  AppKit                        	       0x1a47eeb6c -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 688
27  AppKit                        	       0x1a47ee878 -[NSApplication(NSEventRouting) nextEventMatchingMask:untilDate:inMode:dequeue:] + 72
28  AppKit                        	       0x1a3d9f720 -[NSApplication run] + 368
29  libqcocoa.dylib               	       0x1037a4fb8 QCocoaEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 1712 (qcocoaeventdispatcher.mm:430)
30  QtCore                        	       0x1051b8b3c QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 36 (qeventloop.cpp:139) [inlined]
31  QtCore                        	       0x1051b8b3c QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 500 (qeventloop.cpp:230)
32  QtCore                        	       0x1051afe88 QCoreApplication::exec() + 128 (qcoreapplication.cpp:1382)
33  kDrive                        	       0x1008e1f7c exec(std::__1::unique_ptr<KDC::AppServer, std::__1::default_delete<KDC::AppServer>>&) + 1996 (mainserver.cpp:193)
34  kDrive                        	       0x1008e2134 main + 160 (mainserver.cpp:203)
35  dyld                          	       0x19f565924 start + 6400

If switching to NSApplicationMain() resolves the issue and you’re able to make that transition, then please do so.

We will not be able to make that transition on the short term, but that is definitively toward this solution that we want to move in the next few months.

We will not be able to make that transition on the short term, but that is definitively toward this solution that we want to move in the next few months.

I'd also recommend contacting QT suggesting they file their own bug(s) and/or contact DTS to talk about options.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

I'd also recommend contacting QT suggesting they file their own bug(s) and/or contact DTS to talk about options.>

Yes, it is done.

In the meantime, I have installed macOS 26 beta 6 and the icon is back!

In the meantime, I have installed macOS 26 beta 6 and the icon is back!

Excellent, glad to hear the fix (r.155484172) worked!

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

macOS26: MenuBarExtra item not showing
 
 
Q