My app (running in iPhone X Simulator Xcode 9.0.1) is asking me for permission to use Face ID.
The alert says:
Do you want to allow <appName> to use Face ID?
This app was designed to use Touch ID and may not fully support Face ID.
I was expecting that the few changes I made to the new APIs in the LocalAuthentication
framework (e.g. biometryType
) was supposed to basically work for Face ID.
Is there something else I need to do to make it so my app is designed to fully support Face ID?
It appears that you need to add the NSFaceIDUsageDescription
to your Info.plist
in order to support Face ID.
Also, the simulator alert is only for simulator, without that Info.plist key, the app apparently should crash on a real device without it.
Thanks to these dudes for helping me learn this - What is NSFaceIDUsageDescription - Face ID Usage Description Info.plist key?
Protip:
Prior to the permission prompt, [LAContext canEvaluatePolicy:error:]
returns YES
for biometrics if the device is capable of it.
iOS won't prompt the user for permission until the first call to [LAContext evaluatePolicy:localizedReason:reply:]
.
If the user does not grant permission, then all future calls to canEvaluatePolicy
will return NO
(error Code=-6 "User has denied the use of biometry for this app."). This is an odd nuance.