让现有的带有指纹认证的应用程序与 iPhone X FaceId 一起使用
Getting existing app with fingerprint authentication to work with iPhone X FaceId
我已经开发了一个应用程序并在商店上架。它运作良好,并实施了指纹认证。既然 Apple 已强制要求提供 iPhone X 支持,我将发布该应用程序的另一个更新。
但是,我想知道如果在 iPhone X.. 上安装已经提交的应用程序版本会发生什么?
我读过-
应用程序将提供一个兼容性警告说 This app was designed to use Touch ID and may not fully support FaceID
,但是如果我们在 plist 中插入一个键 NSFaceIDUsageDescription
它就会消失。
我还了解到,如果使用 iOS 11 SDK(plist 中没有密钥 NSFaceIDUsageDescription
)构建应用程序将会崩溃。
这是我的问题 - 如果应用程序是使用 iOS 8 构建并安装在 iOS 11 中,它还会崩溃吗?如果不是,确切的行为将如何..?我已经在模拟器中进行了测试,应用程序没有崩溃,但我手头没有 iPhone X,无法在实际设备上进行交叉检查。
注意 - 这种崩溃更多地发生在设备上而不是模拟器上。
- 在 iPhone X 上的应用程序 运行 中使用
FaceId
这个词有多重要。如果我使用 "Biometric authentication" 这样的通用术语代替触摸 ID 和面部识别码。该应用程序仍然可以正常使用并且最终不会被拒绝吗?
任何帮助或线索将不胜感激!
我用它来处理 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
您说得对,您的 plist 中需要 NSFaceIDUsageDescription
密钥才能正确支持面容 ID。
如果您使用 Xcode 9 针对 iOS 11 SDK 构建应用程序,即使您将目标设置为 iOS 8,您也需要包含该密钥以支持 iPhone X.
就是说,我不明白这可能会导致崩溃。您用于 Touch ID 的相同代码也支持 Face ID。
我已经开发了一个应用程序并在商店上架。它运作良好,并实施了指纹认证。既然 Apple 已强制要求提供 iPhone X 支持,我将发布该应用程序的另一个更新。
但是,我想知道如果在 iPhone X.. 上安装已经提交的应用程序版本会发生什么?
我读过-
应用程序将提供一个兼容性警告说
This app was designed to use Touch ID and may not fully support FaceID
,但是如果我们在 plist 中插入一个键NSFaceIDUsageDescription
它就会消失。我还了解到,如果使用 iOS 11 SDK(plist 中没有密钥
NSFaceIDUsageDescription
)构建应用程序将会崩溃。
这是我的问题 - 如果应用程序是使用 iOS 8 构建并安装在 iOS 11 中,它还会崩溃吗?如果不是,确切的行为将如何..?我已经在模拟器中进行了测试,应用程序没有崩溃,但我手头没有 iPhone X,无法在实际设备上进行交叉检查。
注意 - 这种崩溃更多地发生在设备上而不是模拟器上。
- 在 iPhone X 上的应用程序 运行 中使用
FaceId
这个词有多重要。如果我使用 "Biometric authentication" 这样的通用术语代替触摸 ID 和面部识别码。该应用程序仍然可以正常使用并且最终不会被拒绝吗?
任何帮助或线索将不胜感激!
我用它来处理 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
您说得对,您的 plist 中需要 NSFaceIDUsageDescription
密钥才能正确支持面容 ID。
如果您使用 Xcode 9 针对 iOS 11 SDK 构建应用程序,即使您将目标设置为 iOS 8,您也需要包含该密钥以支持 iPhone X.
就是说,我不明白这可能会导致崩溃。您用于 Touch ID 的相同代码也支持 Face ID。