是否启用了没有info.plist键的Face-ID?

时间:2019-02-28 09:57:24

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

因此,商店中当前有一个支持Touch-ID登录的应用程序

  • 使用 iPhone X iOS:12.1.4 的用户向我发送了一个视频,他可以使用自己的人脸ID 和我登录回想起我从未实现过 face ID 功能,因此我已在具有相同 iOS iPhone X 上下载了商店版本,而我无法t使用人脸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 登录!这怎么可能?

1 个答案:

答案 0 :(得分:0)

您的应用是否使用旧版本的iOS SDK(我认为是iOS 10或更早版本)构建?如果是这样,iOS将允许您在允许用户使用Touch ID的任何情况下使用Face ID进行身份验证,即使您尚未将这些密钥添加到Info.plist中也是如此。第一次,他们尝试这样做,他们会看到提示警告他们该应用程序不是为Face ID设计的。