App Intents updates
Learn about important changes in App Intents.
Overview
Browse notable changes in App Intents.
June 2026
Apple Intelligence
Integrate your app with Apple intelligence by conforming your app intents, app entities, and app enums to an app schema in one of the App schema domains.
Indicate that your app entities have identifiers that remain stable across devices by adopting SyncableEntity, so people can continue a task on another device.
Prompt for confirmation before destructive or sensitive actions on shared or publicly accessible entities by adopting OwnershipProvidingEntity and returning an EntityOwnership value.
Enable Apple Intelligence to suggest media-related entities like songs or albums during workouts and similar contexts with RelevantEntities.
Bridge your app entities to system intent value types by using IntentValueRepresentation in your entity’s
transferRepresentationproperty.
App intents
Let people perform App Shortcuts, custom shortcuts, system actions, or open another app from interactive widgets with RunSystemShortcutIntent.
Extend an app intent’s background runtime by adopting LongRunningIntent and calling performBackgroundTask(options:operation:) with a LongRunningTaskOptions value, reporting progress as the task runs.
Handle cancellation cleanup gracefully by adopting CancellableIntent. Inspect IntentCancellationReason to distinguish a deliberate cancellation from a timeout.
Reverse the effect of an app intent’s action by adopting UndoableIntent.
Specify whether your app intent runs in the foreground, the background, or both by setting the
supportedModesproperty to an IntentModes value, then consult currentMode insideperform()to adapt your code at runtime.Tell the system which target may perform your app intent or entity query — the main app, the App Intents extension, or a widget extension — by setting the
allowedExecutionTargetsproperty to an IntentExecutionTargets option set.
App entities
Refer to a large set of entities efficiently using EntityCollection, which stores only entity identifiers and resolves the full AppEntity instances on demand. Use the type for an app intent parameter to avoid resolving every identifier during parameter resolution.
Define union-type Shortcuts parameters with rich picker UI and custom metadata by adopting AppUnionValue on the type the
@UnionValuemacro generates, along with the AppUnionValueCasesProviding cases enum.Have the system retrieve indexed entities by identifier from the Spotlight index by adopting IndexedEntityQuery.
Errors
Provide a localized description for failures by initializing an AppIntentError with
init(description:), or wrap an existing error that conforms to CustomLocalizedStringResourceConvertible.
June 2025
Create app intents that conform to SnippetIntent to display an interactive snippet.
Make app entities available in Spotlight that conform to IndexedEntity and use the
@ComputedProperty(indexingKey:)or@Property(indexingKey:)Swift macros for attributes you want to add to the Spotlight index.Integrate your app with visual intelligence by providing app entities to the system using an IntentValueQuery.
Create an AppEntity that conforms to the Transferable protocol and associate the app entity with a NSUserActivity using the activity’s appEntityIdentifier property to make onscreen content available to Siri without adopting an assistant schema.
November 2024
Siri and Apple Intelligence
Make onscreen content available to Siri and Apple Intelligence by describing it as an AppEntity and adopting an assistant schema. Additionally, adopt the Transferable protocol, and associate the app entity with a NSUserActivity using the activity’s appEntityIdentifier property.
June 2024
System integration
Integrate your app with Siri and Apple Intelligence using App schema domains.
Use ControlConfigurationIntent and WidgetKit to allow users to put controls on the Lock Screen or in Control Center.
Create a locked camera capture extension for your app and implement a CameraCaptureIntent to allow people to capture photos and videos from controls or the Action button.
Create app intents that capture audio by implementing AudioRecordingIntent.
Allow people to find app entities in Spotlight by adopting the IndexedEntity protocol.
Content sharing
Make it possible to share and transfer data you describe as App entities by conforming to Transferable.
Receive content other apps make available with app intents by using IntentFile for your app intent parameters.
Describe the file that stores your app intent data using FileEntity.
General
Provide additional information about errors with AppIntentError.PermissionRequired, AppIntentError.Unrecoverable, and AppIntentError.UserActionRequired.
Pass a condition to requestConfirmation(conditions:actionName:dialog:) to only require user confirmation if a person’s context meets the provided condition.
Use URLRepresentableIntent, URLRepresentableEntity, and URLRepresentableEnum to represent your app intents, app entities, and app enums as universal links that you use to provide deep links to your app’s content.
Define a set of types for an intent parameter using the UnionValue() macro to create flexible app intents because a parameter can be of one of several pre-defined union types.
Create entities that have just one singular instance with UniqueAppEntity and the corresponding UniqueAppEntityQuery. For example, to provide an app intent for app settings that appear in your app or in System Settings, create a singleton entity that encapsulates all settings as properties. Use it in the app intent that offers actions to change your app’s settings.
See Also
Technology and frameworks
Accelerate updatesAccessibility updatesActivityKit updatesAdAttributionKit UpdatesApp Clips updatesAppKit updatesApple Intelligence updatesAppleMapsServerAPI UpdatesApple Pencil updatesARKit updatesAudio Toolbox updatesAuthenticationServices updatesAVFAudio updatesAVFoundation updatesBackground Tasks updates