所以我目前在商店里有一个支持Touch-ID
登录的应用程序,
- 一个拥有iPhone XiOS:12.1.4的用户给我发了一个视频,他可以使用他的面部ID登录,我记得我从未实现过面部ID功能,所以我在iPhone X上下载了商店版本使用相同的iOS和我无法使用Face 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 将允许用户在您允许他们使用触控 ID 的任何情况下使用面容 ID 进行身份验证,即使您尚未将这些键添加到您的Info.plist
中也是如此。第一次尝试此操作时,他们会看到一个提示,警告他们该应用程序不是为Face ID设计的。