什么是 NSFaceIDUsageDescription - Face ID 使用说明 Info.plist 键?

What is NSFaceIDUsageDescription - Face ID Usage Description Info.plist key?

在 Xcode 9 GM 中有一个新的隐私 NSFaceIDUsageDescription Info.plist 密钥,开发人员在其中提供权限警报的使用说明。有人有 link 的文档吗? Xcode 中的 plist 视图总结为:

Privacy - Face ID Usage Description

现在在上面提到的论坛中进一步解释(由 Apple 员工提供)https://forums.developer.apple.com/message/265156:

Face ID requires adding a usage string with the key NSFaceIDUsageDescription (aka Privacy - Face ID Usage Description) to your app's Info.plist.

In the simulator, the Face ID permissions alert will show "This app was designed to use Touch ID and may not fully support Face ID" if that key is missing. On an actual device, your app will crash the same as if any other required usage string is missing.

Privacy - Face ID Usage Description (NSFaceIDUsageDescription) is string key, lets you describe the reason your app uses Face ID.

为了保护用户隐私,link在 iOS11 或之后的 iOS 应用程序如果硬件支持它会访问 Face ID,则必须静态声明意图这样做。在应用程序的 Info.plist 文件中包含 NSFaceIDUsageDescription 密钥,并为此密钥提供用途字符串。如果您的应用在没有相应目的字符串的情况下尝试访问面容 ID,您的应用可能会退出。

注意:iOS 11 及更高版本支持此键。

引入了面容身份验证 for/with iPhone-X 设备并且仅适用于 iPhone-X(即使没有模拟器)

使用 Xcode 9.0.1 和 Xcode 9.2 beta - 它似乎可以工作

参考。 link 到 Apple 文档 - NSFaceIDUsageDescription
所有可用键的列表 - Cocoa Keys

我有一些用户在第一个 TouchID 警报显示时报告应用程序崩溃。解决方法是在设备上进行测试并读取控制台 (Xcode 9.4.1):

This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSFaceIDUsageDescription key with a string value explaining to the user how the app uses this data.

只需通过右键单击添加 NSFaceIDUsageDescription 并在 Info.plist 的根目录中添加 "Add Row" 并粘贴 NSFaceIDUsageDescription 并将其设置为 YES。

模拟器不支持 FaceID,因此如果您不在 plist 中添加一个 one liner 来支持 FaceID 验证,那么使用登录名、钥匙串和 TouchID 的应用程序将受到影响。用户将收到一条提醒,要求他们默认允许 FaceID 登录您的应用程序,因此如果您已经设置了 TouchID,则无需编码即可支持 FaceID。

也许我晚点来参加派对,但你可以通过添加这个

来解决这个问题
<key>NSFaceIDUsageDescription</key>
<string>$(PRODUCT_NAME) Authentication with TouchId or FaceID</string>

Project-Info.plist