【问题标题】:iOS 12 - NSFaceIDUsageDescription all of a sudden not workingiOS 12 - NSFaceIDUsageDescription 突然不起作用
【发布时间】: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 以及设置 --> 常规 --> 重置 --> 重置位置和隐私(这会重置设备上的所有警告并再次提示)

标签: ios swift ios12 face-id


【解决方案1】:

当您的设备超出错误尝试的限制时,它通常会返回 false。 尝试锁定您的设备,然后使用面部/触摸 ID 解锁,它会在您的应用中重新开始工作。 它还应该返回一个错误代码,为什么它对于 evaluateError 失败了 希望这是您的情况并解决问题。

【讨论】:

    猜你喜欢
    • 2014-11-16
    • 1970-01-01
    • 2018-11-18
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多