0

我已经开发了一个应用程序并在商店中上线。它运行良好,并实施了指纹认证。既然 Apple 已经强制要求提供 iPhone X 支持,我将发布该应用程序的另一个更新。

但是,我想了解如果在 iPhone X 上安装已经提交的应用程序版本会发生什么..?

我读过——

  1. 应用程序会提供一个兼容性警报,说,但是如果我们在 plist 中This app was designed to use Touch ID and may not fully support FaceID插入一个键,它就会消失。NSFaceIDUsageDescription

  2. 我还读到如果使用 iOS 11 SDk(NSFaceIDUsageDescriptionplist 中没有密钥)构建该应用程序将会崩溃。

这是我的问题- 如果应用程序是使用 iOS 8 构建并安装在 iOS 11 中的,它还会崩溃吗?如果没有,确切的行为将如何..?我已经在模拟器中进行了测试,应用程序没有崩溃,但我手头没有 iPhone X,也无法在实际设备上进行交叉检查。

注意- 在设备上观察到此崩溃更多,而不是在模拟器上。

  1. 在 iPhone X 上运行应用程序中的单词是多么重要FaceId。如果我使用诸如“生物识别身份验证”之类的通用术语代替 touchId 和 FaceId 会怎样。该应用程序仍然可以正常使用并且最终不会被拒绝吗?

任何帮助或线索将不胜感激!

4

2 回答 2

0

我用它来处理 faceID 或 touchID

if (@available(iOS 11.0, *)) {
            if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {
                if (myContext.biometryType == LABiometryTypeTouchID) {
                    SwitchItem *touchIdItem = [[SwitchItem alloc] init];
                    touchIdItem.name = NSLocalizedString(@"PROFILE_SETTINGS_TOUCHID", nil);
                    touchIdItem.active = [[[Global instance] objectInKey:KEY_TOUCHID_ENABLED] boolValue];
                    [self.dataSource addObject:touchIdItem];
                } else if (myContext.biometryType == LABiometryTypeFaceID) {
                    SwitchItem *faceIdItem = [[SwitchItem alloc] init];
                    faceIdItem.name = NSLocalizedString(@"PROFILE_SETTINGS_FACEID", nil);
                    faceIdItem.active = [[[Global instance] objectInKey:KEY_FACEID_ENABLED] boolValue];
                    [self.dataSource addObject:faceIdItem];
                }
            }
        } else {
            if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {
                SwitchItem *touchIdItem = [[SwitchItem alloc] init];
                touchIdItem.name = NSLocalizedString(@"PROFILE_SETTINGS_TOUCHID", nil);
                touchIdItem.active = [[[Global instance] objectInKey:KEY_TOUCHID_ENABLED] boolValue];
                [self.dataSource addObject:touchIdItem];
            }
        }

您必须评估 iOS 版本,然后您可以假设小工具是否有 touchID 或 faceID

于 2018-08-15T21:16:44.357 回答
0

You're right in that you need the NSFaceIDUsageDescription key in your plist to properly support Face ID.

If you built the app using Xcode 9 against the iOS 11 SDK, even if you set the target to iOS 8, you need to include that key to support iPhone X.

That said, I don't see how this might be crashing. The same code that you use for Touch ID also supports Face ID.

于 2018-08-15T21:23:14.193 回答