Siri not calling my INExtension

Things I did:

  • created an Intents Extension target
  • added "Supported Intents" to both my main app target and the intent extension, with "INAddTasksIntent" and "INCreateNoteIntent"

  • created the AppIntentVocabulary in my main app target

  • created the handlers in the code in the Intents Extension target
class AddTaskIntentHandler: INExtension, INAddTasksIntentHandling {
    func resolveTaskTitles(for intent: INAddTasksIntent) async -> [INSpeakableStringResolutionResult] {
        if let taskTitles = intent.taskTitles {
            return taskTitles.map { INSpeakableStringResolutionResult.success(with: $0) }
        } else {
            return [INSpeakableStringResolutionResult.needsValue()]
        }
    }

    func handle(intent: INAddTasksIntent) async -> INAddTasksIntentResponse {
        // my code to handle this...

        let response = INAddTasksIntentResponse(code: .success, userActivity: nil)
        response.addedTasks = tasksCreated.map {
            INTask(
                title: INSpeakableString(spokenPhrase: $0.name),
                status: .notCompleted,
                taskType: .completable,
                spatialEventTrigger: nil,
                temporalEventTrigger: intent.temporalEventTrigger,
                createdDateComponents: DateHelper.localCalendar().dateComponents([.year, .month, .day, .minute, .hour], from: Date.now),
                modifiedDateComponents: nil,
                identifier: $0.id
            )
        }
        return response
    }
}
class AddItemIntentHandler: INExtension, INCreateNoteIntentHandling {
    func resolveTitle(for intent: INCreateNoteIntent) async -> INSpeakableStringResolutionResult {
        if let title = intent.title {
            return INSpeakableStringResolutionResult.success(with: title)
        } else {
            return INSpeakableStringResolutionResult.needsValue()
        }
    }

    func resolveGroupName(for intent: INCreateNoteIntent) async -> INSpeakableStringResolutionResult {
        if let groupName = intent.groupName {
            return INSpeakableStringResolutionResult.success(with: groupName)
        } else {
            return INSpeakableStringResolutionResult.needsValue()
        }
    }

    func handle(intent: INCreateNoteIntent) async -> INCreateNoteIntentResponse {
        do {
            // my code for handling this...

            let response = INCreateNoteIntentResponse(code: .success, userActivity: nil)
            response.createdNote = INNote(
                title: INSpeakableString(spokenPhrase: itemName),
                contents: itemNote.map { [INTextNoteContent(text: $0)] } ?? [],
                groupName: INSpeakableString(spokenPhrase: list.name),
                createdDateComponents: DateHelper.localCalendar().dateComponents([.day, .month, .year, .hour, .minute], from: Date.now),
                modifiedDateComponents: nil,
                identifier: newItem.id
            )
            return response
        } catch {
            return INCreateNoteIntentResponse(code: .failure, userActivity: nil)
        }
    }
}
  • uninstalled my app
  • restarted my physical device and simulator

Yet, when I say "Remind me to buy dog food in Index" (Index is the name of my app), as stated in the examples of INAddTasksIntent, Siri proceeds to say that a list named "Index" doesn't exist in apple Reminders app, instead of processing the request in my app.

Am I missing something?

Siri not calling my INExtension
 
 
Q