SiriKit security for iOS, iPadOS, and watchOS
Siri uses the app extension system to communicate with third-party apps. On a device, Siri can access the user’s contact information and the device’s current location. But before it provides protected data to an app, Siri checks the app’s user-controlled access permissions. According to those permissions, Siri passes only the relevant fragment of the original user utterance to the app extension. For example, if an app doesn’t have access to contact information, Siri won’t resolve a relationship in a user request such as “Pay my mother 10 dollars using Payment App.” In this case, the app would see only the literal term “my mother.”
However, if the user has granted the app access to contact information, the app would receive resolved information about the user’s mother. If a relationship is referenced in the body portion of a message—for example, “Tell my mother on MessageApp that my brother is awesome”—Siri doesn’t resolve “my brother” regardless of the app’s permissions.
SiriKit-enabled apps can send app-specific or user-specific vocabulary to Siri, such as the names of the user’s contacts. This information allows Siri’s speech recognition and natural language understanding to recognize vocabulary for that app and is associated with a random identifier. The custom information remains available as long as the identifier is in use, or until the user disables the app’s Siri integration in Settings, or until the SiriKit-enabled app is uninstalled.
For an utterance like “Get me a ride to my mom’s home using RideShareApp,” the request requires location data from the user’s contacts. For that request only, Siri provides the required information to the app’s extension, regardless of the user permission settings for location or contact information for the app.