App Intents

RSS for tag

Extend your app’s custom functionality to support system-level services, like Siri and the Shortcuts app.

Posts under App Intents tag

200 Posts

Post

Replies

Boosts

Views

Activity

CSSearchableItemAttributeSet.associateAppEntity(_:priority:) causes "Failed to request donation" warning
I'm trying to associate a Core Spotlight item with an AppEntity during indexing by calling CSSearchableItemAttributeSet.associateAppEntity(_:priority:). However, every time I do so, I get the following warning in the console: {CSInlineDonation[async]: "my.app.bundle.identifier" add-update-items:1 delete-items:0}: Failed to request donation Error Domain=CSIndexErrorDomain Code=-1000 "Failed to request donation" UserInfo={NSDebugDescription=Failed to request donation, NSUnderlyingError=0x143f54ae0 {Error Domain=com.apple.CascadeSets.Set Code=3 "Access denied (<BMResource: set/App.Intents.IndexedEntity [CCSetDescriptor - key: sourceIdentifier value: my.app.bundle.identifier]>)" UserInfo={NSLocalizedDescription=Access denied (<BMResource: set/App.Intents.IndexedEntity [CCSetDescriptor - key: sourceIdentifier value: my.app.bundle.identifier]>), NSUnderlyingError=0x143f54ba0 {Error Domain=BMAccessErrorDomain Code=11 "Failed to prepare resource" UserInfo={NSLocalizedDescription=Failed to prepare resource}}}}} The relevant code is: let attributeSet = CSSearchableItemAttributeSet(contentType: .audiovisualContent) let appEntity = VideoAppEntity(...) attributeSet.associateAppEntity(appEntity) The Spotlight item itself is indexed successfully, but the associateAppEntity call appears to fail with an "Access denied" error related to App.Intents.IndexedEntity. Has anyone encountered this before? Are there additional entitlements, App Intents configuration requirements, or indexing prerequisites needed for associateAppEntity(_:priority:) to work correctly?
3
1
764
Jun ’26
Snippet Views don't render consistently, width not always respected
I've created a Snippet for my iOS app which I want to be able to run from the LockScreen via a Shortcuts widget. All works fine except when I run the shortcut and the App Snippet appears, it doesn't always render the SwiftUI view in the same way. Sometimes the width boundaries are respected and sometimes not. I've tested this on iOS 26.1 and iOS 26.2 beta 3 I think this is a bug but it would be great if anyone could see what I might be doing wrong if it's not. Incase it is a bug I've filed a feedback (FB21076429) and I've created a stripped down sample project showing the issue and added screenshots showing the issue. Basic code to reproduce issue: // Intent.swift // SnippetBug import AppIntents import Foundation import SwiftUI struct SnippetEntryIntent: AppIntent { static let title: LocalizedStringResource = "Open Snippet" static let description = IntentDescription("Shows a snippet.") // Don’t open the app – stay in the snippet surface. static let openAppWhenRun: Bool = false func perform() async throws -> some ShowsSnippetIntent { .result(snippetIntent: TestSnippetIntent()) } } struct TestSnippetIntent: SnippetIntent { static let title: LocalizedStringResource = "Snippet Intent" static let description = IntentDescription("Action from snippet.") @MainActor func perform() async throws -> some IntentResult & ShowsSnippetView { .result(view: SnippetView(model: SnippetModel.shared)) } } @MainActor final class SnippetModel { static let shared = SnippetModel() private init() { } } struct SnippetView: View { let model: SnippetModel var body: some View { HStack { Text("Test Snippet with information") Spacer() Image(systemName: "heart") }.font(.headline) } } struct Shortcuts: AppShortcutsProvider { static var appShortcuts: [AppShortcut] { AppShortcut( intent: SnippetEntryIntent(), phrases: [ "Snippet for \(.applicationName)", "Test Snippet \(.applicationName)" ], shortTitle: "Snippet", systemImageName: "barcode" ) } } You also need these lines in your main App entry point: import AppIntents @main struct SnippetBugApp: App { init() { let model = SnippetModel.shared AppDependencyManager.shared.add(dependency: model) } var body: some Scene { WindowGroup { ContentView() } } } This is correct This is incorrect
2
1
1.2k
Jun ’26
Calling .spotlightQuery() using AppIntentsTesting results in a crash on Xcode 27 beta 1
On https://developer.apple.com/documentation/AppIntentsTesting/testing-your-app-intents-code Apple showcases the following example using AppIntentsTesting to query entities indexed in spotlight. For me, calling .spotlightQuery on any entity definition causes a crash. func testAllEventsIndexed() async throws { let eventDef = definitions.entities["EventEntity"] let allIndexed = try await eventDef .spotlightQuery(nil) XCTAssertGreaterThanOrEqual(allIndexed.count, 3) } Crash: expression unexpectedly raised an error: Failed to obtain the result of the distributed invocation after it was executed. Remote threw executionPermissionDenied(requestBundleID: Is anyone else seeing this crash, or is it just me? Thanks!
4
0
492
Jun ’26
In Xcode 27 beta 1, widgets no longer respond to selected parameters from WidgetConfigurationIntent
I have a widget that uses a WidgetConfigurationIntent where a user can pick what to display in the widget. This configurable widget works fine in iOS 26, but if the app is built with the iOS 27 SDK / Xcode 27, it no longer will respond to any changes from the parameter, and the default is always shown. Is this behavior a bug, or have there been underlying changes in this area that need new accommodations? Thanks!
2
1
1.2k
Jun ’26
.messages.message reaction field type vs. error from macro
The documented template for @AppEntity(schema: .messages.message) at Integrating your messaging app with Apple Intelligence and on the MessagesEntity.message reference page shows: var reaction: <#ReadReaction#>? with <#ReadReaction#> rendered as a placeholder (the Xcode placeholder syntax). A natural reading is "fill in your own type that you want to use here". I tried several: Tapback? where Tapback is @AppEnum(schema: .messages.customReaction) MessageReaction? (same, renamed) MessageReaction? with manual AppEnum conformance (no schema decoration) AttributedString? AttributedString (non-optional) field omitted entirely Each variant produced one of: error: Property 'reaction' type does not match required AppSchemaEntity property type 'ReadReactionCases:(Schema<Tapback> | AttributedString)' error: Required AppSchemaEntity property 'reaction' must be optional error: Missing required property 'reaction' from AppSchemaEntity 'messages.message' The phrase ReadReactionCases:(Schema<Tapback> | AttributedString) is opaque — ReadReactionCases isn't a public type, Schema<Tapback> isn't constructable from outside, and the documentation doesn't mention @UnionValue in this context. The actual working pattern, which I only found by downloading the UnicornChat sample and reading MessageEntity.swift, is: @UnionValue enum MessageReaction: Sendable { case customReaction(CustomReaction) } @AppEnum(schema: .messages.customReaction) enum CustomReaction: String, AppEnum { case sticker static let caseDisplayRepresentations: [Self: DisplayRepresentation] = [ .sticker: "Sticker" ] } Two suggestions: Update the schema-template comment in the docs to either name MessageReaction explicitly with a @UnionValue annotation, or include a one-line note: "The reaction field is a @UnionValue enum wrapping the customReaction schema enum — see UnicornChat sample." The current placeholder <#ReadReaction#> plus the prose suggesting "you can generate the properties... with the @AppEntity(.messages.message) Swift macro" reads as if the developer just supplies any AppEnum-conformer. Improve the diagnostic. Property type does not match required AppSchemaEntity property type 'ReadReactionCases:(Schema<Tapback> | AttributedString)' is unhelpful because ReadReactionCases doesn't appear in any reachable type. Either rename to something developer-facing, or include a fix-it that suggests @UnionValue. iOS 27.0 beta, Xcode 27 beta, macOS Tahoe 26.4.
3
0
670
Jun ’26
Conforming existing App Intents / Entity to Schema
Our app already has a huge set of App Intents and Entities. Conceptually, our entities and intents matches well to the existing schemas (like the Notes schema). But because we have existing intents, we ran into two problems: Our existing intents/entities used different property names in the past and some properties are slightly different then the schema. Our existing intents are already used on older Versions of macOS / iOS. But the schema domain is only available on OS27 and later. What can we do to adopt the schema? Should we just duplicate all Intents / Entities and mark them as isAssistantOnly and limit their availability to OS27 and later?
0
1
310
Jun ’26
Siri Waitlisted Come On
It’s been since the end of WWDC Keynote, I’m still waitlisted for “New Siri” iOS 27 is done indexing. This is ridiculous. How many years I’ve been paying for a developer membership and they cannot release a simple plist file to open up the servers and let us in. Only the first that downloaded in the first 10 minutes got it while the rest of us that downloaded in the first 30 minutes are still waiting. its insane.
5
1
399
Jun ’26
Rich SwiftUI Rendering in the Siri Overlay
For intents that return complex markdown, code snippets, or structured layouts, what are the rendering capabilities and resource constraints of custom SwiftUI views returned via Snippet inside the Siri voice overlay? Are interactive controls (like buttons, copy-to-clipboard, or scroll views) supported inside the Siri-overlay SwiftUI container?
1
0
776
Jun ’26
NSUserActivity-based Shortcuts Integration Not Working on iOS 18+
Previously, we used NSUserActivity to enable invoking specific in-app features from the Shortcuts app. This worked as expected up to iOS 17, but it no longer works on iOS 18 and later. We’ve confirmed that the same functionality can be achieved by using App Intents as an alternative. Question. Is the change in iOS 18—where NSUserActivity-based Shortcuts integration no longer works (or is restricted)—an intentional behavior change? If so, could you point us to any relevant documentation or release notes describing this change? We’ve tried to find information ourselves but haven’t found any clear references. Request. In cases like this where an OS update impacts existing implementations, it would be very helpful if such changes were clearly documented in release notes or API change logs in advance.
0
0
1.2k
Jun ’26
Does On-Screen-Context from first party apps work at the moment?
Do apps like Files, Safari, and Finder provide on screen data on request? I've got an entity that implements transferable, but Siri is consistently telling me that it is unable to export data from Files, Safari and photos, and does not seem to want to construct my entity. (it's an @PhotoAsset entity, and I've implemented @createAssets as well.) Is that true at the moment that Siri cannot read data from those apps? I'm not sure if this is a bug or a feature.
0
0
449
Jun ’26
Unions and @Schemas
Hello, I'm still working on my @addToAlbum schema implementation, and I'm exploring how multiple entities could be "destinations" to the intent. I considered using a @UnionValue for this, but I'm running into compiler difficulties trying to get a @UnionValue to conform to @AppEntity(schema: .photos.album) Am I out of luck on a Unionized "target" for the add-to-album intent?
0
0
210
Jun ’26
Can I import images into my app with App Intent Schemas?
I'm trying to create an App Intent that takes in an image and copies it to a destination within my app. Sure, this can be done with shortcuts, but that's lame, I want siri to grab an image off the screen and invoke the action! Without an app schema, it doesn't seem like siri can tell what's possible in the app, so I'm trying to find a schema that fits? I've started trying to do this with the photos.addAssetsToAlbum App Intent schema, but it doesn't seem like Siri is onboard with the concept. It's replied many times that it is unable to add things to my App and that I should try via other means like opening my app and importing directly. Should be I be trying this with a different intent schema?
2
0
289
Jun ’26
CSSearchableItemAttributeSet.associateAppEntity(_:priority:) causes "Failed to request donation" warning
I'm trying to associate a Core Spotlight item with an AppEntity during indexing by calling CSSearchableItemAttributeSet.associateAppEntity(_:priority:). However, every time I do so, I get the following warning in the console: {CSInlineDonation[async]: "my.app.bundle.identifier" add-update-items:1 delete-items:0}: Failed to request donation Error Domain=CSIndexErrorDomain Code=-1000 "Failed to request donation" UserInfo={NSDebugDescription=Failed to request donation, NSUnderlyingError=0x143f54ae0 {Error Domain=com.apple.CascadeSets.Set Code=3 "Access denied (<BMResource: set/App.Intents.IndexedEntity [CCSetDescriptor - key: sourceIdentifier value: my.app.bundle.identifier]>)" UserInfo={NSLocalizedDescription=Access denied (<BMResource: set/App.Intents.IndexedEntity [CCSetDescriptor - key: sourceIdentifier value: my.app.bundle.identifier]>), NSUnderlyingError=0x143f54ba0 {Error Domain=BMAccessErrorDomain Code=11 "Failed to prepare resource" UserInfo={NSLocalizedDescription=Failed to prepare resource}}}}} The relevant code is: let attributeSet = CSSearchableItemAttributeSet(contentType: .audiovisualContent) let appEntity = VideoAppEntity(...) attributeSet.associateAppEntity(appEntity) The Spotlight item itself is indexed successfully, but the associateAppEntity call appears to fail with an "Access denied" error related to App.Intents.IndexedEntity. Has anyone encountered this before? Are there additional entitlements, App Intents configuration requirements, or indexing prerequisites needed for associateAppEntity(_:priority:) to work correctly?
Replies
3
Boosts
1
Views
764
Activity
Jun ’26
Snippet Views don't render consistently, width not always respected
I've created a Snippet for my iOS app which I want to be able to run from the LockScreen via a Shortcuts widget. All works fine except when I run the shortcut and the App Snippet appears, it doesn't always render the SwiftUI view in the same way. Sometimes the width boundaries are respected and sometimes not. I've tested this on iOS 26.1 and iOS 26.2 beta 3 I think this is a bug but it would be great if anyone could see what I might be doing wrong if it's not. Incase it is a bug I've filed a feedback (FB21076429) and I've created a stripped down sample project showing the issue and added screenshots showing the issue. Basic code to reproduce issue: // Intent.swift // SnippetBug import AppIntents import Foundation import SwiftUI struct SnippetEntryIntent: AppIntent { static let title: LocalizedStringResource = "Open Snippet" static let description = IntentDescription("Shows a snippet.") // Don’t open the app – stay in the snippet surface. static let openAppWhenRun: Bool = false func perform() async throws -> some ShowsSnippetIntent { .result(snippetIntent: TestSnippetIntent()) } } struct TestSnippetIntent: SnippetIntent { static let title: LocalizedStringResource = "Snippet Intent" static let description = IntentDescription("Action from snippet.") @MainActor func perform() async throws -> some IntentResult & ShowsSnippetView { .result(view: SnippetView(model: SnippetModel.shared)) } } @MainActor final class SnippetModel { static let shared = SnippetModel() private init() { } } struct SnippetView: View { let model: SnippetModel var body: some View { HStack { Text("Test Snippet with information") Spacer() Image(systemName: "heart") }.font(.headline) } } struct Shortcuts: AppShortcutsProvider { static var appShortcuts: [AppShortcut] { AppShortcut( intent: SnippetEntryIntent(), phrases: [ "Snippet for \(.applicationName)", "Test Snippet \(.applicationName)" ], shortTitle: "Snippet", systemImageName: "barcode" ) } } You also need these lines in your main App entry point: import AppIntents @main struct SnippetBugApp: App { init() { let model = SnippetModel.shared AppDependencyManager.shared.add(dependency: model) } var body: some Scene { WindowGroup { ContentView() } } } This is correct This is incorrect
Replies
2
Boosts
1
Views
1.2k
Activity
Jun ’26
Calling .spotlightQuery() using AppIntentsTesting results in a crash on Xcode 27 beta 1
On https://developer.apple.com/documentation/AppIntentsTesting/testing-your-app-intents-code Apple showcases the following example using AppIntentsTesting to query entities indexed in spotlight. For me, calling .spotlightQuery on any entity definition causes a crash. func testAllEventsIndexed() async throws { let eventDef = definitions.entities["EventEntity"] let allIndexed = try await eventDef .spotlightQuery(nil) XCTAssertGreaterThanOrEqual(allIndexed.count, 3) } Crash: expression unexpectedly raised an error: Failed to obtain the result of the distributed invocation after it was executed. Remote threw executionPermissionDenied(requestBundleID: Is anyone else seeing this crash, or is it just me? Thanks!
Replies
4
Boosts
0
Views
492
Activity
Jun ’26
In Xcode 27 beta 1, widgets no longer respond to selected parameters from WidgetConfigurationIntent
I have a widget that uses a WidgetConfigurationIntent where a user can pick what to display in the widget. This configurable widget works fine in iOS 26, but if the app is built with the iOS 27 SDK / Xcode 27, it no longer will respond to any changes from the parameter, and the default is always shown. Is this behavior a bug, or have there been underlying changes in this area that need new accommodations? Thanks!
Replies
2
Boosts
1
Views
1.2k
Activity
Jun ’26
.messages.message reaction field type vs. error from macro
The documented template for @AppEntity(schema: .messages.message) at Integrating your messaging app with Apple Intelligence and on the MessagesEntity.message reference page shows: var reaction: <#ReadReaction#>? with <#ReadReaction#> rendered as a placeholder (the Xcode placeholder syntax). A natural reading is "fill in your own type that you want to use here". I tried several: Tapback? where Tapback is @AppEnum(schema: .messages.customReaction) MessageReaction? (same, renamed) MessageReaction? with manual AppEnum conformance (no schema decoration) AttributedString? AttributedString (non-optional) field omitted entirely Each variant produced one of: error: Property 'reaction' type does not match required AppSchemaEntity property type 'ReadReactionCases:(Schema<Tapback> | AttributedString)' error: Required AppSchemaEntity property 'reaction' must be optional error: Missing required property 'reaction' from AppSchemaEntity 'messages.message' The phrase ReadReactionCases:(Schema<Tapback> | AttributedString) is opaque — ReadReactionCases isn't a public type, Schema<Tapback> isn't constructable from outside, and the documentation doesn't mention @UnionValue in this context. The actual working pattern, which I only found by downloading the UnicornChat sample and reading MessageEntity.swift, is: @UnionValue enum MessageReaction: Sendable { case customReaction(CustomReaction) } @AppEnum(schema: .messages.customReaction) enum CustomReaction: String, AppEnum { case sticker static let caseDisplayRepresentations: [Self: DisplayRepresentation] = [ .sticker: "Sticker" ] } Two suggestions: Update the schema-template comment in the docs to either name MessageReaction explicitly with a @UnionValue annotation, or include a one-line note: "The reaction field is a @UnionValue enum wrapping the customReaction schema enum — see UnicornChat sample." The current placeholder <#ReadReaction#> plus the prose suggesting "you can generate the properties... with the @AppEntity(.messages.message) Swift macro" reads as if the developer just supplies any AppEnum-conformer. Improve the diagnostic. Property type does not match required AppSchemaEntity property type 'ReadReactionCases:(Schema<Tapback> | AttributedString)' is unhelpful because ReadReactionCases doesn't appear in any reachable type. Either rename to something developer-facing, or include a fix-it that suggests @UnionValue. iOS 27.0 beta, Xcode 27 beta, macOS Tahoe 26.4.
Replies
3
Boosts
0
Views
670
Activity
Jun ’26
Conforming existing App Intents / Entity to Schema
Our app already has a huge set of App Intents and Entities. Conceptually, our entities and intents matches well to the existing schemas (like the Notes schema). But because we have existing intents, we ran into two problems: Our existing intents/entities used different property names in the past and some properties are slightly different then the schema. Our existing intents are already used on older Versions of macOS / iOS. But the schema domain is only available on OS27 and later. What can we do to adopt the schema? Should we just duplicate all Intents / Entities and mark them as isAssistantOnly and limit their availability to OS27 and later?
Replies
0
Boosts
1
Views
310
Activity
Jun ’26
Siri Waitlisted Come On
It’s been since the end of WWDC Keynote, I’m still waitlisted for “New Siri” iOS 27 is done indexing. This is ridiculous. How many years I’ve been paying for a developer membership and they cannot release a simple plist file to open up the servers and let us in. Only the first that downloaded in the first 10 minutes got it while the rest of us that downloaded in the first 30 minutes are still waiting. its insane.
Replies
5
Boosts
1
Views
399
Activity
Jun ’26
Rich SwiftUI Rendering in the Siri Overlay
For intents that return complex markdown, code snippets, or structured layouts, what are the rendering capabilities and resource constraints of custom SwiftUI views returned via Snippet inside the Siri voice overlay? Are interactive controls (like buttons, copy-to-clipboard, or scroll views) supported inside the Siri-overlay SwiftUI container?
Replies
1
Boosts
0
Views
776
Activity
Jun ’26
NSUserActivity-based Shortcuts Integration Not Working on iOS 18+
Previously, we used NSUserActivity to enable invoking specific in-app features from the Shortcuts app. This worked as expected up to iOS 17, but it no longer works on iOS 18 and later. We’ve confirmed that the same functionality can be achieved by using App Intents as an alternative. Question. Is the change in iOS 18—where NSUserActivity-based Shortcuts integration no longer works (or is restricted)—an intentional behavior change? If so, could you point us to any relevant documentation or release notes describing this change? We’ve tried to find information ourselves but haven’t found any clear references. Request. In cases like this where an OS update impacts existing implementations, it would be very helpful if such changes were clearly documented in release notes or API change logs in advance.
Replies
0
Boosts
0
Views
1.2k
Activity
Jun ’26
Does On-Screen-Context from first party apps work at the moment?
Do apps like Files, Safari, and Finder provide on screen data on request? I've got an entity that implements transferable, but Siri is consistently telling me that it is unable to export data from Files, Safari and photos, and does not seem to want to construct my entity. (it's an @PhotoAsset entity, and I've implemented @createAssets as well.) Is that true at the moment that Siri cannot read data from those apps? I'm not sure if this is a bug or a feature.
Replies
0
Boosts
0
Views
449
Activity
Jun ’26
Unions and @Schemas
Hello, I'm still working on my @addToAlbum schema implementation, and I'm exploring how multiple entities could be "destinations" to the intent. I considered using a @UnionValue for this, but I'm running into compiler difficulties trying to get a @UnionValue to conform to @AppEntity(schema: .photos.album) Am I out of luck on a Unionized "target" for the add-to-album intent?
Replies
0
Boosts
0
Views
210
Activity
Jun ’26
Dynamic Runtime App Shortcuts
Can App Shortcuts (and their trigger phrases) be generated or translated dynamically at runtime based on user-defined configurations (e.g. download-on-demand language models or custom voice aliases), or must all voice shortcuts and translations be statically declared in the application's compiled String Catalogs (.xcstrings)?
Replies
0
Boosts
2
Views
513
Activity
Jun ’26
Can I import images into my app with App Intent Schemas?
I'm trying to create an App Intent that takes in an image and copies it to a destination within my app. Sure, this can be done with shortcuts, but that's lame, I want siri to grab an image off the screen and invoke the action! Without an app schema, it doesn't seem like siri can tell what's possible in the app, so I'm trying to find a schema that fits? I've started trying to do this with the photos.addAssetsToAlbum App Intent schema, but it doesn't seem like Siri is onboard with the concept. It's replied many times that it is unable to add things to my App and that I should try via other means like opening my app and importing directly. Should be I be trying this with a different intent schema?
Replies
2
Boosts
0
Views
289
Activity
Jun ’26
Any debugging tools beyond AppIntentsTesting?
Are there any tools this year to debug why siri can't see a schema-based intent or chooses not to invoke it? Is it possible to see what inputs siri has within the context of the conversation that could cascade into intents of other applications? I've had difficulties with knowing if something should work, or of it's just not possible.
Replies
0
Boosts
0
Views
201
Activity
Jun ’26