Thanks for being a part of WWDC25!

How did we do? We’d love to know your thoughts on this year’s conference. Take the survey here

AssistantIntent system.search behaviour

Given that iOS 18.2 is out and following documentation and WWDC example (limited to iOS 18.2+), I am attempting to use @AssistantIntent(schema: .system.search) along an AppIntent.

Questions:

  1. Has anyone made this to work on a real device?!

In my case (code below): when I run the intent from Shortcuts or Siri, it does NOT open the App but only calls the perform method (and the App is not foregrounded) -- changing openAppWhenRun has no effect! Strangely: If my App was backgrounded before invocation and I foreground it after, it has navigated to Search but just not foregrounded the App! Am I doing anything wrong? (adding @Parameter etc doesn't change anything).

  1. Where is the intelligence here? The criteria parameter can NOT be used in the Siri phrase -- build error if you try that since only AppEntity/AppEnum is permitted as variable in Siri phrase but not a StringSearchCriteria.

Said otherwise: What's the gain in using @AssistantIntent(schema: .system.search) vs a regular AppIntent in this case?!

Some code:

@available(iOS 18.2, *)
@AssistantIntent(schema: .system.search)
struct MySearchIntent: ShowInAppSearchResultsIntent {
    static let searchScopes: [StringSearchScope] = [.general]
    static let openAppWhenRun = true

    var criteria: StringSearchCriteria
    
    @MainActor
    func perform() async throws -> some IntentResult {
        NavigationHandler().to(.search(.init(query: criteria.term)), from: .siri)
        return .result()
    }
}

Along with this ShortCut in AppShortcutsProvider:

AppShortcut(
            intent: MySearchIntent(),
            phrases: [
                "Search \(.applicationName)"
            ],
            shortTitle: "Search",
            systemImageName: "magnifyingglass"
        )

I also have the same issue.

AssistantIntent system.search behaviour
 
 
Q