I am trying to add Siri Kit to my app - I have followed every step carefully, but Siri will not call my intents extension.
I have built 3 test apps, plus the UnicornChart app, and all of them work fine. Which is to say, I can place NSLog statments in my resolve methods (INSearchForPhotosIntentHandling) - and the NSlogs appear in the console when I debug the intents extension (ie run the intents extension target and execute Siri).
But with my real app, an app which I have been developing for several years and is up to version 5.4 , no matter what I do, Siri does not recognize my app, all I get is photos from the Web or photos in my phone's photo library.
My intent extension implements INSearchForPhotosIntentHandling and I have methods in my intents handler class for:
- (void) resolveAlbumNameForSearchForPhotos:(INSearchForPhotosIntent *)intent withCompletion:(void (^)(INStringResolutionResult * _Nonnull))completion
- (void)confirmSearchForPhotos:(INSearchForPhotosIntent *)intent completion:(void (^)(INSearchForPhotosIntentResponse *response))completion
- (void)handleSearchForPhotos:(INSearchForPhotosIntent *)intent completion:(void (^)(INSearchForPhotosIntentResponse *response))completion
I have properly added the Siri capability to the project, and enabled SiriKit in the iOS dev portal for my appID.
But - 3 test apps I built from scratch, all worked fine. All 3 of them, plus my real app have the exact same NSExtensionAttributes - The IntentHandler class was identical in all 3 test apps, plus the real app.
I named the 3 test apps:
All of these work when I speak "Find photos in fish album in TurkeySiri" - the last word being the app name.
But when I do this with my real app name, no response - I just get photos from the web.
My real app is named "Panna" - so I say "Find photos in fish album in Panna" - nothing.
I don't know what code to post - if I post the code for my test apps, the code will work if anyone tries it.
I can't post the code for my app, its tens of thousands of lines of irrelevant code of course, but the parts related to SiriKit are identical to the code in the test app. SO, I've posted the test app (http://app.pannacooking.com/download/TurkeySiri.zip).
I've compared the test app to my real app 30 times. I've compared each class, the info.plist, my apps info plist. All match.
The only thing I can think of is that it has something to do with the actual name of my app. I dont know why this would be a problem. But I can't help think this is the case,
I would love to test this theory, but I can't find a way - what do I change to affect the word Siri uses to recognize my app? Is it the bundle name, the App ID name in IOS Portal? Is it something in the info.plist?
But I am soliciting suggestions, ideas, wild guesses - ANYTHING. Any advice would be appreciated.