面临着相当新的问题,不幸的是死库react-native-biometrics(与
react-native-touch-id
相同的结果)。
在 iOS 17.4 FaceID 按预期工作,我调用提示,应用程序正在等待 FaceId 验证。
在 iOS 18 上,我在控制台中收到错误。我看到提示 UI 大约一毫秒,它消失了,并且立即被评估为未提供生物识别信息。
Error Domain=com.apple.LocalAuthentication Code=-1000 "UI service connection invalidated."
UserInfo={NSDebugDescription=UI service connection invalidated., NSLocalizedDescription=Authentication failed.}
此错误可能是由于新的模拟器错误所致,在真实设备上用户无法通过 FaceID 登录。
这里我得到密钥不存在或已被删除
rnBiometrics.biometricKeysExist().then((resultObject) => {
const { keysExist } = resultObject;
if (keysExist) {
console.log('Keys exist');
} else {
console.log('Keys do not exist or were deleted');
}
});
这是我的简单提示电话
const rnBiometrics = new ReactNativeBiometrics();
try {
const { success, error } = await rnBiometrics.simplePrompt({
promptMessage: 'Confirm fingerprint',
cancelButtonText: 'Cancel',
});
if (success) {
Logger.log('Successful biometrics provided');
}
if (error) {
Logger.log(`Biometrics prompt error: ${error}`);
}
return success;
} catch (e) {
Logger.error('Biometrics prompt failed with exception: ', e);
return false;
}
有人遇到同样的情况吗?
通过反复试验,我切换到不同的 iPhone 模拟器,例如 iPhone 16 Pro -> iPhone 11 Pro Max,来来回回,我能够让模拟器工作
again
。