Is anyone else getting new warning about menu items with submenus when running on Tahoe? I'm getting big performance problems using my menu as well as seeing these messages and I'm wondering if there's a connection.
My app is faceless with a NSStatusItem with an NSMenu. Specifically it's my own subclass of NSMenu where I have a lot of code to manage the menu's dynamic behavior. This code is directly in the menu subclass instead of in a controller because the app I forked had it this way, a little wacky but I don't see it being a problem. A nib defines the contents of the menu, and it's instantiated manually with code like:
var nibObjects: NSArray? = []
guard let nib = NSNib(nibNamed: "AppMenu", bundle: nil) else { ... }
guard nib.instantiate(withOwner: owner, topLevelObjects: &nibObjects) else { ... }
guard let menu = nibObjects?.compactMap({ $0 as? Self }).first else { ... }
Within that nib.instantiate call I see a warning logged that seems new to Tahoe, before the menu's awakeFromNib is called, that says (edited):
Internal inconsistency in menus - menu <NSMenu: 0x6000034e5340> believes it has <My_StatusItem_App.AppMenu: 0x7f9570c1a440> as a supermenu, but the supermenu does not seem to have any item with that submenu
My_StatusItem_App.AppMenu: 0x7f9570c1a440 is my menu belonging to the NSStatusItem, NSMenu: 0x6000034e5340 is the submenu of one of its menu items.
At a breakpoint in the NSMenu subclass's awakeFromNib I print self and see clear evidence of the warning's incorrectness. Below is a snippet of the console including the full warning, only edited for clarity and brevity. It shows on line 32 menu item with placeholder title "prototype batch item" that indeed has that submenu.
Internal inconsistency in menus - menu <NSMenu: 0x6000034e5340>
Title:
Supermenu: 0x7f9570c1a440 (My StatusItem App), autoenable: YES
Previous menu: 0x0 (None)
Next menu: 0x0 (None)
Items: (
"<NSMenuItem: 0x6000010e4fa0 Do The Thing Again, ke mask='<none>'>",
"<NSMenuItem: 0x6000010e5040 Customize\U2026, ke mask='<none>'>",
"<NSMenuItem: 0x6000010e50e0, ke mask='<none>'>"
) believes it has <My_StatusItem_App.AppMenu: 0x7f9570c1a440>
Title: My StatusItem App
Supermenu: 0x0 (None), autoenable: YES
Previous menu: 0x0 (None)
Next menu: 0x0 (None)
Items: (
) as a supermenu, but the supermenu does not seem to have any item with that submenu
(lldb) po self
<My_StatusItem_App.AppMenu: 0x7f9570c1a440>
Title: My StatusItem App
Supermenu: 0x0 (None), autoenable: YES
Previous menu: 0x0 (None)
Next menu: 0x0 (None)
Items: (
"<NSMenuItem: 0x6000010fd7c0 About My StatusItem App\U2026, ke mask='<none>', action: showAbout:, action image: info.circle>",
"<NSMenuItem: 0x6000010fd860 Show Onboarding Window\U2026, ke mask='Shift', action: showIntro:>",
"<NSMenuItem: 0x6000010fd900 Update Available\U2026, ke mask='<none>', action: installUpdate:, standard image: icloud.and.arrow.down, hidden>",
"<NSMenuItem: 0x6000010e46e0, ke mask='<none>'>",
"<NSMenuItem: 0x6000010e4780 Start The Thing, ke mask='<none>', action: startTheThing:>",
"<NSMenuItem: 0x6000010e4dc0 \U2318-\U232b key detector item, ke mask='<none>', view: <My_StatusItem_App.KeyDetectorView: 0x7f9570c1a010>>",
"<NSMenuItem: 0x6000010e4e60, ke mask='<none>'>",
"<NSMenuItem: 0x6000010e4f00 saved batches heading item, ke mask='<none>', view: <NSView: 0x7f9570b4be10>, hidden>",
"<My_StatusItem_App.BatchMenuItem: 0x6000016e02c0 prototype batch item, ke mask='<none>', action: replaySavedBatch:, submenu: 0x6000034e5340 ()>",
"<NSMenuItem: 0x6000010f7d40, ke mask='<none>'>",
"<My_StatusItem_App.ClipMenuItem: 0x7f956ef14fd0 prototype copy clip item, ke mask='<none>', action: copyClip:>",
"<NSMenuItem: 0x6000010fa620 Settings\U2026, ke='Command-,', action: showSettings:>",
"<NSMenuItem: 0x6000010fa6c0, ke mask='<none>'>",
"<NSMenuItem: 0x6000010fa760 Quit My StatusItem App, ke='Command-Q', action: quit:>"
)
Is this seemingly incorrect inconsistency message harmless? Am I only grasping at straws to think it has some connection to the performance issues with this menu?
Overview
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Hello,
I think it is quite a common use-case to open the parent app that owns the ShieldActionDelegate when the user selects an action in the Shield.
There are only three options available that we can do in response to an action:
ShieldActionResponse.none
ShieldActionResponse.close
ShieldActionResponse.defer
It would be great if this new one would be added as well:
ShieldActionResponse.openParentApp
While finding a workaround for now, the problem is that the ShieldActionDelegate is not a normal app extension. That means, normal tricks do not work to open the parent app from here.
For example, UIApplication.shared.open(url) does not work because we can’t access UIApplication from the ShieldActionDelegate unfortunately.
NSExtensionContext is also not available in the ShieldActionDelegate unfortunately, so that’s also not possible.
There are apps however, that managed to find a workaround, in my research I stumbled across these two:
https://apps.apple.com/de/app/applocker-passcode-lock-apps/id1132845904?l=en-GB
https://apps.apple.com/us/app/app-lock/id6448239603
Please find a screen recording (gif) attached.
Their workaround is 100% what I’m looking for, so there MUST be a way to do so that is compliant with the App Store guidelines (after all, the apps are available on the App Store!).
I had documented my feature request more than 2 years ago in this radar as well: FB10393561
Is Xcode 26 required for DeclaredAgeRange APIs?
We ask because there appears to be a serious legal deadline on January 1, 2026 and if Xcode 26 is required to meet this deadline, it's about to be a huge burden for us to upgrade to it over the holidays.
Our app does support teenagers.
Is this intended behavior? I want my app to act like the regular Clock app and snooze alarms when user taps volume down button but apparently volume down button stops the alarm. Is this normal or am I missing something?
Topic:
App & System Services
SubTopic:
General
系统闹钟APP响铃响起时,点击电源键可以小睡功能。AlarmKit能否有办法判断是电源键和其他物理按键关闭了闹钟,而非点击或滑动关闭按钮。这样第三方闹钟也可以增加小睡功能。目前是直接关闭了闹钟。
Topic:
Developer Tools & Services
SubTopic:
General
Hello,
While setting up Xcode Cloud using Bitbucket, I encountered an issue with Source Control and providing access to the repository.
The problem most likely stems from the fact that Bitbucket has updated its policy, and the use of app passwords is no longer available (at least for new ones). However, in Xcode → Settings → Source Control, the login flow still requires an app password, which makes it impossible to authenticate using the new API tokens. Attempting to authenticate via SSH also does not resolve the issue.
After connecting to GitHub, I also tried to connect through the web version, but I'm getting the same message: "Bitbucket Cloud installation was incomplete." I received this same message when I first tried to connect through Xcode.
This problem does not occur when connecting to GitHub.
I would appreciate receiving feedback from the Apple team on this issue.
System Info:
Xcode: 16.2 (latest from App Store)
macOS: Sequoia 15.1
Recently, we have adapted the passkey function on the Mac, but we always encounter the error message "Unable to verify the web credentials association of xxx with domain aaa. Please try again in a few seconds."
We can confirm that https://aaa/.well-known/apple-app-site-association has been configured and is accessible over the public network. Additionally, the entitlements in the app have also been set with webcredentials:aaa.
This feature has been experiencing inconsistent performance. When I restart my computer or reinstall the pkg, this feature may work or it may still not work. I believe this is a system issue.
Here is feed back ID: FB20876945
In the feedback, I provided the relevant logs.
If you have any suggestions or assistance, please contact me. I would be extremely grateful!
Topic:
Privacy & Security
SubTopic:
General
Tags:
macOS
Objective-C
Authentication Services
Passkeys in iCloud Keychain
Hello,
When using ASWebAuthenticationSession with an HTTPS callback URL (Universal Link), I receive the following error:
Authorization error: The operation couldn't be completed.
Application with identifier jp.xxxx.yyyy.dev is not associated with domain xxxx-example.go.link.
Using HTTPS callbacks requires Associated Domains using the webcredentials service type for xxxx-example.go.link.
I checked Apple’s official documentation but couldn’t find any clear statement that webcredentials is required when using HTTPS callbacks in ASWebAuthenticationSession.
What I’d like to confirm:
Is webcredentials officially required when using HTTPS as a callback URL with ASWebAuthenticationSession?
If so, is there any official documentation or technical note that states this requirement?
Environment
iOS 18.6.2
Xcode 16.4
Any clarification or official references would be greatly appreciated.
Thank you.
Topic:
Privacy & Security
SubTopic:
General
Tags:
iOS
Security
Authentication Services
Universal Links
I’m integrating the Declared Age Range feature to tailor our app’s experience based on a user’s age range. I’m currently in the testing phase and would like to repeatedly test the consent flow and different outcomes from AgeRangeService.shared.requestAgeRange(...).
However, once I go through the consent flow and choose to share, the age-range sharing sheet no longer appears on subsequent attempts—so it’s hard to validate edge cases (e.g., changed gates, declined flow, re-prompt behavior).
Could you advise on the recommended way to reset or re-prompt during development? In particular:
Is there a supported way to clear per-app consent so the system prompts again?
Under what conditions should the “Share Age Range Again” control appear in Settings, and is there an equivalent way to trigger it for testing?
Are there best practices for QA (e.g., using Ask First at the system level, testing on real devices vs. Simulator, using a separate bundle ID for dev builds, or other steps)?
Any other guidance for validating different requestAgeRange results (e.g., declined/not available) would be appreciated.
I'm trying to digest and understand the new set of APIs relating age verification that were released last week.
I have say that without some cohesive overview, example app, just a simple diagram showing the relationship of everything, its not at all clear to me what's going on nor what an app developer is expected to do to use these apis (I'm a senior engineer with 15 year's iOS experience, but hey maybe I'm just a bit slow in the head).
I have a few questions, but the topic of this post is what is the relationship between age verification i.e. between the declared age range/significant change and Permission Kit?
The documentation for the former mentions the Significant Change API/Topic (https://developer.apple.com/news/?id=2ezb6jhj / https://developer.apple.com/documentation/PermissionKit/SignificantAppUpdateTopic).
Now the Significant Change Topic is documented as being part of PermissionKit, however the documentation for that (https://developer.apple.com/documentation/permissionkit)
States emphatically at the top:
"Communication experiences using the PermissionKit framework are only available using iMessage."
Meaning you can't use PermissionKit for anything other than iMessage? If it doesn't mean that, then why does it state so?
If it does mean that, then how does an app which has nothing to do with iMessage make use of Significant Change - because this documentation:https://developer.apple.com/news/?id=2ezb6jhj
Is talking about using significant change for all apps, not iMessage.
So there is a contradiction here.
Returning to a Mac Catalyst app that I put to the side for awhile..when running it on Xcode 26.1 it crashes at launch with:
Assertion failure in -[NSToolbarItemGroupView _layoutWrapperViewsWithAttributes:], NSToolbarItemGroupView.m:599
No attributes were found for item
Call stack has a bunch of Autolayout code in AppKit like:
[NSWindow(NSConstraintBasedLayoutInternal) _layoutViewTree] + 120
50 AppKit 0x00000001911e8a10 -[NSWindow(NSConstraintBasedLayoutInternal) layoutIfNeeded] + 240
51 UIKitMacHelper 0x00000001a98f293c -[UINSWindow layoutIfNeeded] + 56
A few unnamed symbols mixed in maybe that's that Swiftness beneath the surface. App is just murdered on launch. I assume this is related to using NSToolbarItemGroup when building an NSToolbar...
I do see this log out:
NSToolbarItemGroup does not support selectionMode. Create the group with one of the class constructors to support selection.
Which is an interesting log so I commented out all calls to setSelectionMode: but still the same crash.
I do set the groups subitems property directly (I do not use the class constructors as the logging statement above indicates). I have no idea if using the class constructors will workaround this issue or not but I'm not particularly excited about that idea because I have items in the same toolbar group with different actions.
I downloaded the official sample project “Accessing the Main Camera”, but I found that it’s not able to retrieve the camera feed on visionOS 26.1. After checking the debug logs, it seems the issue is caused by the system being unable to find the expected format.
I tested on a device running visionOS 2, and the camera feed worked correctly — but only when using the sample code from the visionOS 2 version, not the current one. I also noticed that some of the APIs have changed between versions.
Has anyone managed to successfully access the camera feed on visionOS 26.1?
Original discussion pre iOS 26
Our app uses Auth0 with HTTPS callback, we've found the issue where AASA file is not ready immediately when app is initially launched, which is the exact issue from the above link.
The issue seems mostly fixed on later versions on iOS 18, however, we are seeing some indications of a regression on iOS 26. Here's some measurement over the last week.
| Platform | iOS 18 | iOS 26 |
|---------------|----------|--------|
| Adoption rate | 55% | 45% |
| Issue seen | 1 | 5 |
| Recover? | Yes | No |
This only 1 iOS 18 instance was able to recover after 1 second after the first try, however, all iOS 26 instances were not able to recover in couple tens of seconds and less than 1 minute, the user eventually gave up.
Is there a way to force app to update AASA file?
Are there some iOS setting (like using a VPN) that could potentially downgrade the AASA fetch?
Related Auth0 discussion:
https://community.auth0.com/t/ios-application-not-
recognizing-auth0-associated-domain/134847/27
I created a custom class that inherits from IOUserSCSIPeripheralDeviceType00 in the DriverKit SCSIPeripheralsDriverKit framework.
When I attempted to send a vendor-specific command to a USB storage device using the UserSendCDB function of this class instance, the function returned the error:
kIOReturnNotPrivileged (iokit_common_err(0x2c1)) // privilege violation
However, when using UserSendCDB in the same way to issue standard SCSI commands such as INQUIRY or Test Unit Ready, no error occurred and the returned sense data was valid.
Why is UserSendCDB able to send standard SCSI commands successfully, but vendor-specific commands return kIOReturnNotPrivileged?
Is there any required entitlement, DriverKit capability, or implementation detail needed to allow vendor-specific CDBs?
Below are the entitlements of my DriverKit extension:
<dict>
<key>com.apple.developer.driverkit.transport.usb</key>
<array>
<dict>
<key>idVendor</key>
<integer>[number of vendorid]</integer>
</dict>
</array>
<key>com.apple.developer.driverkit</key>
<true/>
<key>com.apple.developer.driverkit.allow-any-userclient-access</key>
<true/>
<key>com.apple.developer.driverkit.allow-third-party-userclients</key>
<true/>
<key>com.apple.developer.driverkit.communicates-with-drivers</key>
<true/>
<key>com.apple.developer.driverkit.family.scsicontroller</key>
<true/>
</dict>
If there is any additional configuration or requirement to enable vendor-specific SCSI commands, I would appreciate your guidance.
Environment: macOS15.6 M2 MacBook Pro
Hi,
I'm using a UICollectionViewCell in my project and I can't wrap my head around why cell's UI state isn't changing when selected.
This is my code:
override func updateConfiguration(using state: UICellConfigurationState) {
super.updateConfiguration(using: state)
var background = UIBackgroundConfiguration.listGroupedCell().updated(for: state)
background.cornerRadius = 25
// Update background based on selection state
if state.isSelected {
background.backgroundColor = .systemBlue.withAlphaComponent(0.3)
background.strokeColor = UIColor.systemBlue
background.strokeWidth = 1.5
} else {
background.backgroundColor = isHoveredOver ? .hoverHighlightBackground : .background
background.strokeColor = UIColor.borderColor
background.strokeWidth = 1
}
backgroundConfiguration = background
}
The if block does get executed but it's not working for some reason. On the other hand, the else block works just fine, my cell's background is being highlighted when hovered over, the stroke is showing etc.
What am I missing here?
Thank you.
An error occurred preventing Xcode from downloading version information from App Store Connect for account "xxxxxxxx".
An unexpected error occurred: [<__NSDictionaryM 0x600003ed4fe0> valueForUndefinedKey:]: this class is not key value coding-compliant for the <app name! 5.00.12 (iOS App).
I have no idea what the hell is causing this. I have checked all of the links between screens and objects and none are missing. This is a live active version on the store.
Topic:
Developer Tools & Services
SubTopic:
Xcode
Tags:
Xcode
Xcode Static Analyzer
Organizer Window
My app is live but the leaderboards still aren’t updating. App was built with unreal engine 5 with blueprints. I have the leaderboard stat info entered into the node for write integer to leaderboard and a node for show platform specific leaderboard. The leaderboards are shown as live on app connect.
When I run the app, the Game Center login functions and the leaderboard interface launches as expected but it just lists a group of friends to invite. There are no scores listed and it says number of players 0 even though I have scored on two different devices and accounts. I have the Game Center entitlement added in Xcode. Not sure where else to look.
Hi everyone,
I’m trying to verify something mentioned in the WWDC session “Explore enhancements to your spatial business app.”
At timestamp 3:36, the presenter states:
“You can now access your enterprise license files directly within your Apple Developer account.”
I’ve checked every section of my Developer account, including:
• Membership and Agreements
• Certificates, Identifiers & Profiles
• App Store Connect
• Additional Resources
• Account settings
…but no UI or section exposes these enterprise license files.
Since the Vision Entitlement Services framework actively checks these licenses (for example, mainCameraAccess entitlement approval), I need to confirm the location of the new license file.
Could someone from Apple or anyone who has seen this feature clarify:
1. Where exactly do these enterprise license files appear in the Developer account UI, or
2. Whether this feature has not rolled out yet?
Any guidance or screenshots from those who have access would be invaluable.
Thanks,
Topic:
Spatial Computing
SubTopic:
General
Tags:
Enterprise
Entitlements
Business and Enterprise
visionOS
Summary
I’m experiencing two issues with SwiftUI’s navigationTransition(.zoom) on iOS 26.0 and 26.1 that break previously smooth transitions. These issues appear both on real devices and Simulator. The same code works correctly on iOS 18.
Issue 1 - Source View Disappears After Drag-Dismiss
When using .navigationTransition(.zoom(sourceID:..., in:...)), the source view disappears completely after the transition finishes.
This only happens when the detail view is dismissed via drag (interactive dismiss).
When the view is dismissed by tapping the back button, the source view remains visible as expected.
Reproduced on: iOS 26.0, iOS 26.0.1 (17A400), iOS 26.1 (Simulator + physical device)
Issue 2 — Flickering and Geometry Mismatch During Transition
Compared to iOS 18 behavior, the outgoing view and incoming view no longer share consistent geometry.
Current behavior on iOS 26:
The disappearing view flickers during the drag-dismiss interaction.
The source and destination views no longer align geometrically.
Instead of smoothly morphing as in previous iOS versions, the two views briefly overlap incorrectly before applying the zoom animation.
Expected (iOS 18) behavior:
Matched geometry between source and destination.
Smooth, stable zoom transition with no flickering.
//
// ContentView.swift
// DummyTransition
//
// Created by Sasha Morozov on 12/11/25.
//
import SwiftUI
struct RectItem: Identifiable, Hashable {
let id: UUID = UUID()
let title: String
let color: Color
}
struct ContentView: View {
@Namespace private var zoomNamespace
private let items: [RectItem] = [
RectItem(title: "Red card", color: .red),
RectItem(title: "Blue card", color: .blue),
RectItem(title: "Green card", color: .green),
RectItem(title: "Orange card", color: .orange)
]
var body: some View {
NavigationStack {
ScrollView {
VStack(spacing: 16) {
ForEach(items) { item in
NavigationLink {
DetailView(item: item, namespace: zoomNamespace)
.navigationTransition(
.zoom(sourceID: item.id, in: zoomNamespace)
)
} label: {
RoundedRectangle(cornerRadius: 16)
.fill(item.color.gradient)
.frame(height: 120)
.overlay(
Text(item.title)
.font(.headline)
.foregroundStyle(.white)
)
.padding(.horizontal, 16)
.matchedTransitionSource(id: item.id, in: zoomNamespace)
}
.buttonStyle(.plain)
}
}
.padding(.vertical, 20)
}
.navigationTitle("Cards")
}
}
}
struct DetailView: View {
let item: RectItem
let namespace: Namespace.ID
var body: some View {
ZStack {
item.color
Text(item.title)
.font(.largeTitle.bold())
.foregroundStyle(.white)
}
.ignoresSafeArea()
.navigationTitle("Detail")
.navigationBarTitleDisplayMode(.inline)
}
}
#Preview {
ContentView()
}
Testing Environment
MacBook Pro (2023, M2 Pro, 16 GB RAM)
macOS 26.2 Beta (25C5031i)
Xcode: Version 26.0.1 (17A400)
Devices tested:
Simulator (iOS 26.0 / 26.1)
Physical device (iPhone 16) running iOS 26.1
Topic:
UI Frameworks
SubTopic:
SwiftUI
Hello,
If I want to modify records in my public database, this works fine. However, if I change from public to private in the requesturl, I get the response: "500 - Internal Error".
According to the CK WebService Reference, it is possible to access the private database.
Could someone explain to me if it is really an internal error and if it could be fixed by Apple, since I would like to access my own private database with the server-to-server key.
Thanks in advance.