【发布时间】:2018-10-29 13:45:21
【问题描述】:
我在我的应用程序中使用 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())
打印返回 false。
这是我的设备的问题吗?还是使用 NSFaceIDUsageDescription?
【问题讨论】:
-
您尝试过干净构建吗?如果它更早工作,并且没有更改代码就停止了,那么这就是我要做的第一件事。另外,您是否尝试过清除派生数据?如果这些没有帮助,请尝试重新启动您的 Mac/Xcode 以及设置 --> 常规 --> 重置 --> 重置位置和隐私(这会重置设备上的所有警告并再次提示)