使用生物识别技术对用户进行身份验证,导致应用程序崩溃

时间:2018-08-09 15:58:36

标签: ios swift biometrics touch-id face-id

因此,我遵循有关使用生物识别技术对用户进行身份验证的书籍。以下是我在称为生物识别管理器的自定义类中编写的一些代码。

func authenticateUser(completion: @escaping (_ result: BiometricsStatus) -> Void) {

    DispatchQueue.main.async {

        guard self.deviceHasBiometricCapabilities() else { completion(.fail(error: .touchIDNotAvailable)); return }

        let authMethod = self.biometricType() == .faceID ? "Face ID" : "Touch ID"
        let loginMessage = "\(authMethod) to sign in"

        self.context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: loginMessage) { success, evaluateError in

            if success {
                completion(.success)
                return
            }

            if let error = evaluateError {
                completion(.fail(error: self.getBiometricsError(from: error)))
                return

            }
        }
    }
} 

我已经调试了应用程序,这似乎导致评估策略行崩溃,我启用了异常断点来尝试捕获崩溃,但控制台日志中什么也没收到。我似乎要进入控制台的唯一一件事是以下内容。

Message from debugger: Terminated due to signal 9

任何可能导致此崩溃发生的可能的指示或想法没有什么超级帮助?

1 个答案:

答案 0 :(得分:0)

您需要将NSFaceIDUsageDescription键添加到info.plist

来自https://developer.apple.com/documentation/localauthentication/lacontext

  

重要

     

如果您的应用允许进行生物特征认证,请在应用的NSFaceIDUsageDescription文件中包含Info.plist键。否则,授权请求可能会失败。