FINAL EDIT: Solved by moving all of the exact same code into another project and changing absolutely nothing. Even using the same bundleID and App Group, old project still doesn't work with Siri and new project does.
EDIT: This entire issue seems to boil down to iOS thinking the app doesn't have Siri permissions, although the permission request comes up and permission is granted. I've now tried adding a brand new intention extension target to the app and removing the old one, but the intention handler still isn't being called (because iOS doesn't recognize that the app has permission).
I'm adding Siri to my app to enable the user to add items to their list via Siri. The app requests and receives authorization, but when giving Siri a voice command the intent handler is never called.
Things that I know are true and have been checked and re-checked 1000 times:
- The plist has a privacy usage description, it shows on the Siri authorization request.
- The extension plist has INAddTasksIntent under IntentsSupported.
- The bundle IDs are correct.
- I've deleted the derived data folder (twice!), reset content and settings on the simulator, used different simulator devices, and used my own device.
- When launching a build using the extension's scheme set to "Ask at launch", it never asks what app I should launch (and so doesn't launch Siri and use Siri Intent Query).
- If I launch the main target's scheme set to "Ask at launch" it does ask what i want to launch. Launching Siri from that build scheme has no effect.
- "Use with Siri" does show under the app's name in the Siri & Search list in the simulator, but when tapping that cell "Use with siri" is not an option on the app's detail page (only "Siri & Suggestions" and "Allow on lock screen" are shown there).
- I've created a simplified app with just a single VC and the same intent extension, with everything set up identically to the app that is causing me issues, Siri works fine and also launches with the Siri Intent Query when selecting the extension build scheme set to "Ask at launch".
I'm at a loss at this point, I'm 9,423 attempts from moving my code to the simplified project file-by-file, but that will be a massive undertaking. I'm hoping there's that one thing I missed, or something embedded somewhere that I'm overlooking, that will solve this without the nuclear option.