因此,商店中当前有一个支持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 登录!这怎么可能?
答案 0 :(得分:0)
您的应用是否使用旧版本的iOS SDK(我认为是iOS 10或更早版本)构建?如果是这样,iOS将允许您在允许用户使用Touch ID的任何情况下使用Face ID进行身份验证,即使您尚未将这些密钥添加到Info.plist
中也是如此。第一次,他们尝试这样做,他们会看到提示警告他们该应用程序不是为Face ID设计的。