繁体   English   中英

Xcode 模拟器不显示Face ID生物识别提示

[英]Xcode simulator does not show Face ID biometrics prompt

`大家好,我是 Swift 的新手,按照生物识别认证教程点击按钮并使用 Face ID 或 Touch ID。

按下生物认证按钮时没有任何反应,因为 canEvaluate 等未设置为 true。 详情如下。

变量和相关的 function


    private(set) var context = LAContext()
    @Published private(set) var biometryType: LABiometryType = .none
    private(set) var canEvaluatePolicy = false 
    @Published private(set) var isAuthenticated = false`

    func getBiometryType(){
        context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: nil)
        biometryType = context.biometryType
    }



    func authenticatedWithBiometrics() async {
        context = LAContext() 
        
        print("inside auth func")
         
  
        
        if canEvaluatePolicy{
            let reason = "to log in to your account"
            
            do{

                let success = try await context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: reason) 
             
                print(success)
                if success {
                    DispatchQueue.main.async {
                        self.isAuthenticated = true
                        print("is authenticated", self.isAuthenticated)
                    }
                }
            }
            catch{ //if fail to authenticate, throw an error, show it, no biometry
                
                print(error.localizedDescription)
                DispatchQueue.main.async {
                    self.errorDescription = error.localizedDescription
                    self.showAlert = true
                    self.biometryType = .none
                }
            }
        }
        
    }

问题:当我单击调用 authenticatedwithbiometrics() 的按钮时,没有任何反应。 调用了 function,问题是 canEvaluatePolicy 为 FALSE,并且未在 getBiometryType 中设置为 true。 如果我手动将变量 canEvaluatePolicy 和 success 配置为 true,我们最终会遇到 error.localizedDescription -> “biometry is not enrolled”。

我尝试过不同的模拟器:iPhone 13、14、14 Pro、14Pro Max 和使用 TouchID 的 SE,但也没有任何作用。

我见过有人有同样的问题,但后来通过尝试不同的模拟器解决了。 那并没有解决我的问题。

我不认为代码有问题,因为它实际上是从工作教程中复制的。 我需要在模拟器中配置一些东西吗?

我们可以在模拟器中测试 Face ID 吗? 这种类型的答案对我没有用,因为我什至无法唤起启动面部或触摸 ID 过程的灰色弹出窗口。

我使用的是最新版本的 xcode。

谢谢你。 `

我现在知道为什么了。 选中“已登记面孔”按钮后,您必须重新开始构建才能显示提示。

您可以使用模拟器使用生物识别身份验证,但您必须确保检查已注册功能 > FaceId > 在此之后您可以检查两种情况匹配或不匹配在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM