App crashes Springboard when IntentHandler embedded

I've been working on adding shortcuts to my app. The Intent handler extension causes my app to crash when it is embedded in the app. I am looking for any guidance on how to debug this, as I went to the Shortcuts Lab and the code was deemed correct.
Code Block //
//  IntentHandler.swift
//  SiriExtension
import Intents
class IntentHandler: INExtension, INSendMessageIntentHandling, INSearchForMessagesIntentHandling {
    override func handler(for intent: INIntent) -> Any {
        // This is the default implementation.  If you want different objects to handle different intents,
        // you can override this and return the handler you want for that particular intent.
        switch intent {
        case is AddAttendeeIntent:
            return AddAttendeeIntentHandler()
        case is RemoveAttendeeIntent:
            return RemoveAttendeeIntentHandler()
        case is StartMeetingIntent:
            return StartMeetingIntentHandler()
        case is EndMeetingIntent:
            return EndMeetingIntent()
        case is ResetMeetingIntent:
            return ResetMeetingIntent()
        case is QuorumReachedIntent:
            return QuorumReachedIntent()
        default:
            fatalError("No handler for this intent")
        }
    }
    func resolveRecipients(for intent: INSendMessageIntent, with completion: @escaping ([INSendMessageRecipientResolutionResult]) -> Void) {
        if let recipients = intent.recipients {
            // If no recipients were provided we'll need to prompt for a value.
            if recipients.count == 0 {
  completion([INSendMessageRecipientResolutionResult.needsValue()])
                return
            }
            var resolutionResults = [INSendMessageRecipientResolutionResult]()
            for recipient in recipients {
                let matchingContacts = [recipient] // Implement your contact matching logic here to create an array of matching contacts
                switch matchingContacts.count {
                case 2  ... Int.max:
                    // We need Siri's help to ask user to pick one from the matches.
                    resolutionResults += [INSendMessageRecipientResolutionResult.disambiguation(with: matchingContacts)]
                case 1:
                    // We have exactly one matching contact
                    resolutionResults += [INSendMessageRecipientResolutionResult.success(with: recipient)]
                case 0:
                    // We have no contacts matching the description provided
                    resolutionResults += [INSendMessageRecipientResolutionResult.unsupported()]
                default:
                    break
                }
            }
            completion(resolutionResults)
        }
    }
    func resolveContent(for intent: INSendMessageIntent, with completion: @escaping (INStringResolutionResult) -> Void) {
        if let text = intent.content, !text.isEmpty {
            completion(INStringResolutionResult.success(with: text))
        } else {
            completion(INStringResolutionResult.needsValue())
        }
    }
    // Once resolution is completed, perform validation on the intent and provide confirmation (optional).
    func confirm(intent: INSendMessageIntent, completion: @escaping (INSendMessageIntentResponse) -> Void) {
        // Verify user is authenticated and your app is ready to send a message.
        let userActivity = NSUserActivity(activityType: NSStringFromClass(INSendMessageIntent.self))
        let response = INSendMessageIntentResponse(code: .ready, userActivity: userActivity)
        completion(response)
    }
    // Handle the completed intent (required).
    func handle(intent: INSendMessageIntent, completion: @escaping (INSendMessageIntentResponse) -> Void) {
        // Implement your application logic to send a message here.
        let userActivity = NSUserActivity(activityType: NSStringFromClass(INSendMessageIntent.self))
        let response = INSendMessageIntentResponse(code: .success, userActivity: userActivity)
        completion(response)
    }
   
    // MARK: - INSearchForMessagesIntentHandling
    func handle(intent: INSearchForMessagesIntent, completion: @escaping (INSearchForMessagesIntentResponse) -> Void) {
        // Return success to launch your Watch application with userActivity containing information for the message search on the interaction.
        let userActivity = NSUserActivity(activityType: NSStringFromClass(INSearchForMessagesIntent.self))
        let response = INSearchForMessagesIntentResponse(code: .success, userActivity: userActivity)
        completion(response)
    }
}


Accepted Reply

Resolved, the problem was I had embedded the intent handler as a plug-in not as an extension.

Replies

Resolved, the problem was I had embedded the intent handler as a plug-in not as an extension.