[英]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。
谢谢你。 `
我现在知道为什么了。 选中“已登记面孔”按钮后,您必须重新开始构建才能显示提示。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.