So I have an application currently on the store that supports Touch-ID login,
Now rolling back to my store version code, there is no info.plist key that indicates using Face-ID which is this one
<key>NSFaceIDUsageDescription</key>
<string>This application wants to access your FaceID scanner</string>
And the code for checking biometrics is this,
let myContext = LAContext()
var authError: NSError? = nil
if #available(iOS 8.0, OSX 10.12, *) {
if !myContext.canEvaluatePolicy(LAPolicy(rawValue: Int(kLAPolicyDeviceOwnerAuthenticationWithBiometrics))!, error: &authError) {
switch authError?.code{
case (LAError.touchIDNotEnrolled).rawValue?:
User.sharedUser.touchIDState = .TouchIDNotEnrolled
self.touchIDButton.isHidden = true
break
case LAError.passcodeNotSet.rawValue?:
User.sharedUser.touchIDState = .TouchIDNotEnrolled
self.touchIDButton.isHidden = true
break
default:
User.sharedUser.touchIDState = .TouchIDNotSupported
self.touchIDButton.isHidden = true
break
}
}else{
User.sharedUser.touchIDState = .TouchIDEnrolled
// if(User.sharedUser.touchIDState == .TouchIDEnrolled){
self.touchIDButton.isHidden = false
// }
}
}
My iPhone X is not showing the application that its using Face-ID and simply when in use directs me for the passcode thats the expected result ... however the video is so clear from the user that he is logging in with Face-ID !! how is this even possible ?
Is your app built using an older version of the iOS SDK (iOS 10 or earlier, I think)? If so, iOS will allow the user to authenticate using Face ID in any circumstance where you allow them to use Touch ID, even if you haven't added those keys to your Info.plist. The first time, they try this, they'll see a prompt warning them that the app wasn't designed for Face ID.