我们正在开发一个应用程序,我们使用Touch ID从钥匙串中读取秘密。
我们发现,当您在上一次读取后立即从
以下是一个示例应用程序:https://github.com/cnandreu/KeychainTouchIdError
以下是使用KeychainTouchIdError演示应用程序的一些场景。这些必须在运行iOS 8且带有触摸ID传感器的真实设备上执行。使用模拟器时,所有方案都按预期工作,因为从不显示Touch ID对话框。
情景1(正常工作)
场景2(在设备上已损坏):
场景3(正常工作):
演示应用程序中可用的按钮
保存 - 为受kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly保护的钥匙串写一个秘密。
阅读 - 从钥匙串中读取一个秘密。
删除 - 从钥匙串中删除秘密。
快速 - 用于执行方案1和2.
快速延迟 - 用于执行方案3.
评论
我们最好的猜测是PIN解锁的动画,即向下滑动并持续约250毫秒,正在干扰第二次读取。使用指纹解锁时没有动画。这只是猜测。
有关我们为何遇到方案2问题的任何想法?是否需要做任何事情来等待钥匙串再次“可读”?