我在我的应用程序中使用了NSFaceIDUsageDescription,它正在运行。我从设备上删除了我的应用程序,然后重新上传(将我的设备插入Mac并从xcode运行),现在我没有收到我的应用程序想要使用FaceID的警报,警报为什么不会出现不再吗这使我无法在应用程序中使用FaceID。
class TouchIDAuth {
let context = LAContext()
func canEvaluatePolicy() -> Bool {
return context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: nil)
}
func authenticateUser(completion: @escaping (NSNumber?) -> Void) {
guard canEvaluatePolicy() else {
completion(0)
return
}
context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: "Logging in with Touch ID") { (success, evaluateError) in
if success {
DispatchQueue.main.async {
completion(nil)
}
} else {
let response: NSNumber
switch evaluateError?._code {
case Int(kLAErrorAuthenticationFailed):
response = 2
case Int(kLAErrorUserCancel):
response = 3
case Int(kLAErrorUserFallback):
response = 4
default:
response = 1
}
completion(response)
}
}
}
}
当我这样做时:
let touchMe = TouchIDAuth()
print(touchMe.canEvaluatePolicy())
打印返回假。
我的设备有问题吗?还是使用NSFaceIDUsageDescription?
最佳答案
当您的设备超出不正确尝试次数的限制时,通常会返回false。
尝试锁定您的设备,然后使用面部/触摸ID解锁,设备即可在您的应用中重新开始工作。
它还应该返回一个错误代码,为什么它无法使用evaluateError
希望这是您的情况并解决问题。
关于ios - iOS 12-NSFaceIDUsageDescription突然不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53046849/