I've been trying to use the console to debug a problem with my SiriKit Intent which I added to launch my app from short cuts. The Log messages are as follows:
My App has an intent handler that calls that intent as follows:
And my Intent is defined as follows:
In the Build for the extension the Intent is listed under Supported Intents. (as StartMeetingIntent).
And the Extension is embedded in my application.
I am stumped.. so any pointers on what I should look at next would be greatly appreciated. Thanks!
Code Block error 21:39:20.087846-0400 intents_helper +[INUIImageSizeProvider downscaledPNGImageForImage:size:error:] Non-fatal error: Error Domain=IntentsErrorDomain Code=6009 "Scaled size is larger than image size" UserInfo={NSDebugDescription=Scaled size is larger than image size} error 21:39:20.090408-0400 Shortcuts -[INCache cacheableObjectForIdentifier:] Unable to find cacheable object with identifier intents-remote-image-proxy:?proxyIdentifier=82C0975C-D3F9-69E5-6F55-7E4EBEE3F41A.png&storageServiceIdentifier=com.apple.Intents.INImageServiceConnection in cache. error 21:39:20.096812-0400 Shortcuts _INCExtensionManagerFetchMatchingSiriExtensionForIntent_block_invoke_2 Failed to find extension Error Domain=INExtensionMatchingErrorDomain Code=3001 "(null)" UserInfo={ExtensionPointName=com.apple.intents-service} error 21:39:20.100112-0400 Shortcuts -[WFAction runWithInput:userInterface:parameterInputProvider:variableSource:completionHandler:]_block_invoke Action <WFHandleCustomIntentAction: 0x7f81bec560c0, identifier: com.theapapp.wastedtime.StartMeetingIntent, parameters: 2> finished with error {domain: WFIntentExecutorErrorDomain, code: 100}. Error Domain=WFIntentExecutorErrorDomain Code=100 "There was a problem with the app." UserInfo={NSUnderlyingError=0x6000020fecd0 {Error Domain=INExtensionMatchingErrorDomain Code=3001 "(null)" UserInfo={ExtensionPointName=com.apple.intents-service}}, NSLocalizedFailureReason=Could not run Start a meeting, NSLocalizedDescription=There was a problem with the app.} error 21:39:20.134294-0400 intents_helper bundleProxyForPID No bundleProxy for bundleURL=file:///Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/libexec/ error 21:39:20.185873-0400 coreduetd error in setObject { DKObjUUID = "ABF04557-70CC-4257-915F-834F529DCB8B"; class = INRunWorkflowIntent; direction = 0; donatedBySiri = 0; handlingStatus = 0; sourceBundleID = "com.apple.shortcuts"; sourceItemID = "FC884509-AE97-4BAB-97C8-B7B8CFFAC879"; type = Workflow; verb = RunWorkflow; } for keyPath /device/intents/dataDictionary : Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service on pid 0 named com.apple.coreduetd.context was invalidated." UserInfo={NSDebugDescription=The connection to service on pid 0 named com.apple.coreduetd.context was invalidated.}
My App has an intent handler that calls that intent as follows:
Code Block override func handler(for intent: INIntent) -> Any { logger.log("\(intent)") switch intent { case is StartMeetingIntent: return StartMeetingIntentHandler() default: fatalError("No handler for this intent") } }
And my Intent is defined as follows:
Code Block import Intents import SwiftUI import os class StartMeetingIntentHandler: NSObject, StartMeetingIntentHandling { let logger=Logger(subsystem: "com.theapapp.wastedtime", category: "Start Meeting Intent") var people: [INObject]? func handle(intent: StartMeetingIntent, completion: @escaping (StartMeetingIntentResponse) -> Void) { if let attendees = intent.people { completion(StartMeetingIntentResponse.success(result: attendees)) } else { logger.log("failure") } } func resolvePeople(for intent: StartMeetingIntent, with completion: @escaping (StartMeetingPeopleResolutionResult) -> Void) { let people = Int(truncating: intent.people ?? 0) if people < 0 { completion(StartMeetingPeopleResolutionResult.unsupported(forReason: StartMeetingPeopleUnsupportedReason.negativeNumbersNotSupported)) } else if people > 1000 { completion(StartMeetingPeopleResolutionResult.unsupported(forReason: StartMeetingPeopleUnsupportedReason.greaterThanMaximumValue)) } else { completion(StartMeetingPeopleResolutionResult.success(with: people)) } } }
In the Build for the extension the Intent is listed under Supported Intents. (as StartMeetingIntent).
And the Extension is embedded in my application.
I am stumped.. so any pointers on what I should look at next would be greatly appreciated. Thanks!