I'm seeing what appears to be different UISceneAppIntent behavior between iOS and Designed for iPad on macOS, and I'd like to confirm whether this is expected.
I'm working on an iOS app that defines an AppIntent conforming to UISceneAppIntent from the AppIntents framework. The intent is handled by a scene delegate conforming to both UIWindowSceneDelegate and AppIntentSceneDelegate.
On iOS, everything works as expected:
- If the app is launched for the first time from Shortcuts, the intent is available via
connectionOptions.appIntentinscene(_:willConnectTo:options:). - If the app is already running,
scene(_:willPerformAppIntent:)is called.
However, when running the same iOS app on macOS in Designed for iPad mode, the behavior is different:
- If the app is launched from Shortcuts,
connectionOptions.appIntentis alwaysnilinscene(_:willConnectTo:options:). - If the app is already running,
scene(_:willPerformAppIntent:)is never called, even though the application is successfully activated.
Is this expected behavior?
I noticed that the AppIntents framework explicitly marks both AppIntentSceneDelegate and UISceneAppIntent as unavailable on macOS:
@available(iOS 26.0, tvOS 26.0, *)
@available(macOS, unavailable)
@available(watchOS, unavailable)
public protocol AppIntentSceneDelegate : UISceneDelegate
Since the app is running on macOS in Designed for iPad mode and still uses the iOS binary, I wasn't sure whether these scene-based APIs are expected to work in this environment or whether they are intentionally unsupported.
Has anyone from Apple or the community been able to confirm whether this behavior is by design, or whether it should be considered a bug? I'd appreciate any clarification.