NSFaceIDUsageDescriptionXcode 9 GM中有一个新的隐私Info.plist密钥,开发人员提供权限警报的使用说明.有人有关于文档的链接吗?Xcode中的plist视图总结为:
隐私 - 面部识别码使用说明
我已经为我的应用程序安全目的集成了LocalAuthentication,它一直支持基于"Touch Id"的支持.但是现在,苹果最近还增加了"基于身份识别"的身份验证.
如何检查设备支持哪种类型的身份验证.触摸ID或面部ID?
无论在Device的密码和touchId设置中配置了什么设置,LAContext始终都不返回任何设置.它只是给我一个警告而不是例外.
它只能在iOS11.1测试版的XCode 9.1 Beta中工作:
LAContext具有检查设备是否可以评估触摸ID并提供错误消息的方法.问题是系统在两种情况下给出了相同的错误消息"LAErrorPasscodeNotSet":
1)如果用户具有Touch ID,但在设置中将其关闭(带iOS8的iPhone 5s)
2)如果设备没有Touch ID(带iOS8的iPad)
问:如何检查设备是否支持Touch ID,但未在设置中打开?
更新:
已经创建了关于这个bug(ID#18364575)的Apple门票,并收到了回答:
" Engineering已根据以下信息确定此问题的行为符合预期:
如果未设置密码,您将无法检测Touch ID的存在.一旦设置了密码,canEvaluatePolicy将最终返回LAErrorTouchIDNotAvailable或LAErrorTouchIdNotEnrolled,您将能够检测Touch ID存在/状态.
如果用户在具有Touch ID的手机上禁用了密码,则他们知道他们将无法使用Touch ID,因此这些应用无需检测Touch ID状态或推广基于Touch ID的功能."
以前我的应用程序使用touchID用于登录,现在我要实现faceID登录的应用程序,我的应用程序得到这个消息时,应用程序启动本地认证.
当我使用faceID登录时,如何防止显示此消息?
消息内容:" 此应用程序旨在支持Touch ID.尚未针对Face ID进行更新. "
注意:我的info.plist上有NSFaceIDUsageDescription和值
如果有任何建议,我们会感激不尽!
我确实理解KeychainAccesskSecAccessControlTouchIDAny框架中的Access with Touch ID是如何工作的,但我无法弄清楚如何在iOS 11中使用Face ID这样做.我找不到任何解决它的文档(也许文档没有出来然而?).
所以我正在寻找stackoverflow并问:如何将使用Face ID保护的值写入钥匙串以及如何将它们复制回去?
一个最小的例子会很好.
我正在我的应用程序中实施生物识别技术进行身份验证。我正在使用反应原生生物识别技术。每件事情都很好,只有一个卡住了。Face-id 不适用于 Android。我做了很多谷歌搜索,但无法找到满意的答案。甚至可以在Android中使用face-id吗?
Biometrics.isSensorAvailable()
.then((biometryType) => {
if (biometryType === Biometrics.TouchID) {
console.log('TouchID is supported')
} else if (biometryType === Biometrics.FaceID) {
console.log('FaceID is supported')
} else {
console.log('Biometrics not supported')
}
})
Run Code Online (Sandbox Code Playgroud)
即使我在手机中使用 FaceId,这也总是返回我的 TouchId。提前感谢您的帮助。
我想问一个关于生物识别身份验证的问题.在我的应用中,我使用Touch ID输入了身份验证.现在voelvo使用Face ID实现该方法.
我将隐私 - 面部ID使用说明行插入我的.plist文件
现在我注意到我的Face ID正常工作,而不对TouchID代码进行任何更改.
我的问题是:
**Touch ID实现代码与Face ID相同?我可以保留Touch ID实现代码而不进行任何更改,或者我是否需要为Face ID添加几行代码?**
我告诉你我是如何实现我的Touch ID的
#pragma mark - TOUCH ID Login
-(void)useTouchID {
NSError *error;
LAContext *context = [[LAContext alloc] init];
NSString *emailAccount = [KFKeychain loadObjectForKey:USER_EMAIL];
NSString *reasonString = [NSString stringWithFormat:@"Autentica %@ utilizzando la tua impronta", emailAccount];
if ([context canEvaluatePolicy:kLAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
[context evaluatePolicy:kLAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason: reasonString reply:^(BOOL success, NSError * _Nullable error) {
// Se la procedura con il TouchID va a buon fine settiamo il booleano su …Run Code Online (Sandbox Code Playgroud) 我需要在 flutter 应用程序内实现 Face ID(生物识别)身份验证。我正在使用 flutter 包“local_auth”v1.1.6(https://pub.dev/packages/local_auth)。但是,当在所需设备上运行时,面部验证选项在应用程序中不可用。
我正在使用以下函数,该函数在按下按钮时运行:
Future<bool> authenticate() async {
try {
final canCheckBiometrics = await _auth.canCheckBiometrics;
print('canCheckBiometrics: ');
print(canCheckBiometrics);
final availableBiometrics = await _auth.getAvailableBiometrics();
print('getAvailableBiometrics: ');
print(availableBiometrics);
return await _auth.authenticate(
localizedReason: 'Authenticate',
biometricOnly: true,
);
} on PlatformException catch (e) {
print(e);
rethrow;
}
Run Code Online (Sandbox Code Playgroud)
}
但是,面部身份验证从未显示为可用的身份验证选项,即使它被列为“可用的生物识别”:
I/flutter ( 4816): canCheckBiometrics:
I/flutter ( 4816): true
I/flutter ( 4816): getAvailableBiometrics:
I/flutter ( 4816): [BiometricType.fingerprint, BiometricType.face]
Run Code Online (Sandbox Code Playgroud)
如果设备上同时设置了指纹和面部,则指纹将显示为唯一可用的身份验证选项。如果仅设置了face,则local_auth库会抛出“NotEnrolled”异常(如果未设置任何方法,则相同):
I/flutter ( 4816): canCheckBiometrics:
I/flutter ( 4816): true
I/flutter ( 4816): …Run Code Online (Sandbox Code Playgroud)