We have seen third-party reports that iPhone Duo uses Touch ID rather than Face ID, which would mean LAContext.biometryType returns a different value than your app may expect, and any UI hard-coding a Face ID icon or the phrase “Face ID” would be wrong.
We have not been able to confirm this from Apple’s own developer material, so treat it as unverified and check biometryType at runtime rather than assuming either one. That is good practice regardless — it is the reason the API exists.
Check it at runtime regardless
This is good practice whatever the answer turns out to be, and it is why the API exists:
let context = LAContext()
var error: NSError?
if context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) {
switch context.biometryType {
case .faceID: promptLabel = "Face ID"
case .touchID: promptLabel = "Touch ID"
default: promptLabel = "biometrics"
}
}
Anything that hard-codes the string “Face ID” or a Face ID glyph in its UI will be wrong on at least one shipping device. We will update this answer once Apple’s material confirms it either way.