下面是方法的说明:
// 目前额外加密就一种就是应用密码
// 输入进去将会是 UTF-8 的字符串
typedef NS_ENUM(NSInteger, LACredentialType)
{
LACredentialTypeApplicationPassword = 0,
} NS_ENUM_AVAILABLE(10_11, 9_0);
// 以下方法据我理解应该是:可以在验证Touch ID之后额外加密?
// 设置解锁额外加密凭证
- (BOOL)setCredential:(nullable NSData *)credential
type:(LACredentialType)type NS_AVAILABLE(10_11, 9_0);
// 判断加密凭证是否设置成功
- (BOOL)isCredentialSet:(LACredentialType)type NS_AVAILABLE(10_11, 9_0);
// 通过Touch ID来验证加密凭证是否通过
- (void)evaluateAccessControl:(SecAccessControlRef)accessControl
operation:(LAAccessControlOperation)operation
localizedReason:(NSString *)localizedReason
reply:(void(^)(BOOL success, NSError * __nullable error))reply
NS_AVAILABLE(10_11, 9_0);
typedef NS_ENUM(NSInteger, LAAccessControlOperation)
{
// 创建额外加密
LAAccessControlOperationCreateItem,
// 使用额外加密
LAAccessControlOperationUseItem,
// 创建额外加密key
LAAccessControlOperationCreateKey,
// 使用额外加密key签名
LAAccessControlOperationUseKeySign
} NS_ENUM_AVAILABLE(10_11, 9_0);
属性的话,这里有5个
@property (nonatomic, nullable, copy) NSString *localizedFallbackTitle;
@property (nonatomic, nullable, copy) NSString *localizedCancelTitle NS_AVAILABLE(10_12, 10_0);
@property (nonatomic, nullable) NSNumber *maxBiometryFailures NS_DEPRECATED_IOS(8_3, 9_0) __WATCHOS_UNAVAILABLE __TVOS_UNAVAILABLE;
@property (nonatomic, nullable, readonly) NSData *evaluatedPolicyDomainState NS_AVAILABLE(10_11, 9_0) __WATCHOS_UNAVAILABLE __TVOS_UNAVAILABLE;
@property (nonatomic) NSTimeInterval touchIDAuthenticationAllowableReuseDuration NS_AVAILABLE(NA, 9_0) __WATCHOS_UNAVAILABLE __TVOS_UNAVAILABLE;
localizedFallbackTitle可以设置验证TouchID时弹出Alert的输入密码按钮的标题
localizedCancelTitle可以设置验证TouchID时弹出Alert的取消按钮的标题(iOS10才有)
maxBiometryFailures 最大指纹尝试错误次数。 这个属性我们可以看到他后面写了NS_DEPRECATED_IOS(8_3, 9_0),说明这个属性在iOS 8.3被引入,在iOS 9.0被废弃,所以如果系统版本高于9.0是无法使用的。
evalueatedPolicyDomainState这个跟可以检测你的指纹数据库的变化,增加或者删除指纹这个属性会做出相应的反应
touchIDAuthenticationAllowableReuseDuration这个属性应该是类似于支付宝的指纹开启应用,如果你打开他解锁之后,按Home键返回桌面,再次进入支付宝是不需要录入指纹的。因为这个属性可以设置一个时间间隔,在时间间隔内是不需要再次录入。默认是0秒,最长可以设置5分钟。
二.常见问题
1. 指纹识别的版本问题
iOS 9 之前是没有LAErrorTouchIDLockout锁定这个选项的,默认错误5次后;第6次验证是自动弹出输入密码界面;










