问题描述:我有一个主应用程序,该应用程序被广泛使用,并通过注册流程处理基于触摸ID的登录。
在我的应用程序中注册Touch ID时,我们将评估的域状态存储在应用程序用户默认值中。
当客户使用Touch ID / face ID登录时,我们在调用服务器之前先检查了设备上的2件事
1。。触摸ID验证
2。。比较validateDomainState以识别设备上的指纹更改。如果ratedDomainState不匹配,我们要求客户重新注册触摸ID。
我们正在通过添加键盘扩展程序来增强此应用程序。键盘将使用相同的登录流程和用户默认设置。 在通过键盘登录过程中, 点1成功。尽管从主应用程序成功,但Point 2未能通过键盘扩展。 这是代码。
self.touchIDHash = self.context.evaluatedPolicyDomainState;
NSData *savedHash = [[NSUserDefaults standardUserDefaults] objectForKey:@"TouchIdHash"];
BOOL fingerPrintChanged = savedHash && ![savedHash isEqualToData:self.touchIDHash];
fingerPrintChanged在键盘扩展名登录时始终为true,在主应用程序登录中始终为false。
任何使这项工作有效的投入都会很有帮助。
答案 0 :(得分:0)
由于在您的容器APP中设置了Fingerprint,
在容器应用中进行验证,然后导航回扩展程序,也许这对您来说是解决方法。