Xcode 9 GM 中有一个新的隐私NSFaceIDUsageDescription
Info.plist 键,开发人员在其中提供权限警报的使用说明。有没有人有关于它的文档的链接?Xcode 中的 plist 视图将其总结为:
隐私 - 面容 ID 使用说明
现在在上述论坛中进一步解释(由苹果员工)https://forums.developer.apple.com/message/265156:
面容 ID 需要将带有密钥 NSFaceIDUsageDescription(又名隐私 - 面容 ID 使用说明)的使用字符串添加到应用的 Info.plist。
在模拟器中,如果缺少该键,Face ID 权限警报将显示“此应用程序设计为使用 Touch ID,可能不完全支持 Face ID”。在实际设备上,您的应用程序将崩溃,就像缺少任何其他必需的使用字符串一样。
也许我稍后会参加聚会,但你可以通过添加这个来解决这个问题
<key>NSFaceIDUsageDescription</key>
<string>$(PRODUCT_NAME) Authentication with TouchId or FaceID</string>
至Project-Info.plist
隐私 - 面容 ID 使用说明 (NSFaceIDUsageDescription) 是字符串键,可让您描述应用使用面容 ID 的原因。
为了保护用户隐私,在 iOS 11 上或之后链接的 iOS 应用程序如果硬件支持它会访问 Face ID,必须静态声明这样做的意图。在应用程序的 Info.plist 文件中包含NSFaceIDUsageDescription
密钥,并为此密钥提供用途字符串。如果您的应用尝试在没有相应用途字符串的情况下访问 Face ID,您的应用可能会退出。
注意:iOS 11 及更高版本支持此键。
为 iPhone-X 设备引入 Face-Id 身份验证,并且仅适用于 iPhone-X(即使没有模拟器)
使用 Xcode 9.0.1 和 Xcode 9.2 beta - 似乎可以正常工作
参考。链接到 Apple 文档 - NSFaceIDUsageDescription
所有可用密钥的列表 - Cocoa Keys
当第一个 TouchID 警报显示时,我有用户报告应用程序崩溃。修复方法是在设备上进行测试并读取控制台(Xcode 9.4.1):
此应用程序已崩溃,因为它试图在没有使用说明的情况下访问隐私敏感数据。应用的 Info.plist 必须包含一个 NSFaceIDUsageDescription 键和一个字符串值,向用户解释应用如何使用这些数据。
只需通过右键单击并在 Info.plist 的根目录中“添加行”来添加NSFaceIDUsageDescription ,然后将 NSFaceIDUsageDescription 粘贴到其中并将其设置为 YES。
模拟器将不支持 FaceID,因此如果您不向 plist 添加单行以支持 FaceID 验证,则使用登录、钥匙串和 TouchID 的应用程序会受到影响。用户将收到一条警报,要求他们默认允许 FaceID 登录您的应用程序,因此如果您已经设置了 TouchID,则无需编码即可支持 FaceID。