所以我目前在商店里有一个支持Touch-ID
登录的应用程序,
现在回滚到我的商店版本代码,没有info.plist键指示使用Face-ID就是这个
<key>NSFaceIDUsageDescription</key>
<string>This application wants to access your FaceID scanner</string>
检查生物识别的代码是这样的,
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
// }
}
}
我的iPhone X没有显示它使用Face-ID的应用程序,只是在使用时指示我输出预期结果的密码......但是用户的视频是如此清晰,以至于他使用Face-ID登录! !这怎么可能呢?
您的应用是使用旧版iOS SDK(iOS 10或更早版本)构建的吗?如果是这样,iOS将允许用户在允许他们使用Touch ID的任何情况下使用Face ID进行身份验证,即使您尚未将这些密钥添加到Info.plist
。第一次,他们尝试这个,他们会看到一个提示,警告他们该应用程序不是为Face ID设计的。