站点图标 Codeun

SwiftUI 面容识别解锁、指纹解锁 Face ID、Touch ID 说明与示例

SwiftUI 面容识别解锁、指纹解锁 Face ID、Touch ID 说明与示例

在拥有生物识别认证功能的机器上,我们可以开启 Face IDTouch ID 校验,只有在验证通过后才能展示页面数据内容,更好的保护隐私数据。

生物识别认证演示Demo,文末可下载

集成步骤

Info.plist 文件中申请权限
FaceID TouchID 添加Info解锁权限示例

打开如图上所示 Info.plist 配置界面,在列表区域内右键选择 Add Row 添加一条数据项。找到或者输入Key: Privacy - Face ID Usage Description ,在 Value 项中填入申请权限的提示内容,这个内容会在首次获取权限的弹窗中展示。

你也可以通过直接编辑Info.plist文件内容,易出错,不推荐。

<key>NSFaceIDUsageDescription</key> 
<string>你可以启用面容、指纹来保护你的数据</string>

引入生物识别库 LocalAuthentication

import LocalAuthentication

LocalAuthentication 提供生物识别相关服务:

使用 LocalAuthentication 检测和发起生物识别认证

let context = LAContext()
var error: NSError?
// 检测设备是否可以进行生物识别
if context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) {
    let reason = "需要进行身份识别认证"
    context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: reason) { success, authenticationError in
        // 身份识别认证完成,检查认证情况
        DispatchQueue.main.async {
            if success {
                print("识别认证成功")
            } else {
                print("识别认证成功")
            }
        }
    }
} else {
    if let e = error {
        print(e)
    }
    print("设备没有识别功能或未开启认证权限,检查设置中的权限")
}

关于 Simulator 模拟器如何使用FaceID

Simulator 模拟器默认是没有开启生物识别功能的。可以通过Simulator模拟器菜单 Features -> Face ID -> Enrolled 开启面容识别Face ID功能,之后可以同样在此菜单中选择 Matching Face 或者 Non-matching Face 来模拟识别验证成功或失败的场景。

退出移动版