【问题标题】:FaceIDRecoginition feature not implemented but asking to add NSFaceIDUsageDescription key in info.plistFaceIDRecoginition 功能未实现,但要求在 info.plist 中添加 NSFaceIDUsageDescription 键
【发布时间】:2019-04-05 07:24:05
【问题描述】:

没有添加与 FaceID 检测相关的功能。我没有添加

LocalAuthentication.framework

在我的应用程序中。我正在为我的应用程序使用密码进行用户身份验证。我的一位使用 faceID 解锁屏幕的客户报告了一个问题,即使用 faceID 应用解锁屏幕后崩溃。

我在模拟器中检查了该问题,因为我无法使用 iPhone X。我按照以下步骤重现问题。

硬件 -> FaceID -> 已注册。

我得到以下登录控制台。

此应用已崩溃,因为它试图访问隐私敏感信息 没有使用说明的数据。应用的 Info.plist 必须包含 一个 NSFaceIDUsageDescription 键,其中包含一个向 用户应用如何使用这些数据。

正如我之前提到的,我还没有实现任何代码来检测 faceID,那为什么我会遇到上述问题?

【问题讨论】:

  • 代码类似于 Touch ID,您不需要单独编码,只需将 NSFaceIDUsageDescription 添加到 info.plist 即可在 iPhone X 上运行而不会崩溃
  • 您如何使用密码解锁屏幕?什么代码?
  • @Paulw11 在生成密码的逻辑中使用了LocalAuthentication.framework。
  • 所以您使用的是本地身份验证框架。如果用户设置了生物识别,则本地身份验证将使用它;如果用户有 FaceID 或 TouchID,iOS 不会强制用户输入密码。您需要提供 FaceID 描述。

标签: ios objective-c face-id


【解决方案1】:

如果缺少 FaceIdUsageDescription,您的应用程序只会在实际设备上崩溃。

我建议您将 FaceIdUsageDescription 添加到 plist,因为如果设备支持并且您的应用程序支持生物识别(甚至 TouchID),LocalAuthentication.framework 将自动使用 FaceID 进行身份验证)。

我在 AppStore 上已经发布的银行应用程序中看到了这些问题。将隐私政策添加到 plist 就可以了。

重要提示:为了保护用户隐私,在 iOS 11 上或之后链接的 iOS 应用程序如果硬件支持它会访问 Face ID,必须静态声明这样做的意图。在应用的 Info.plist 文件中包含 NSFaceIDUsageDescription 键,并为此键提供用途字符串。如果您的应用尝试在没有相应目的字符串的情况下访问 Face ID,您的应用可能会退出。 iOS 11 及更高版本支持此密钥。

Documentation Reference

【讨论】:

    猜你喜欢
    • 2018-02-28
    • 2021-04-26
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 2021-12-12
    • 2021-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多