应用程序扩展键盘内的 LAContext Touch ID

LAContext Touch ID inside of App extension Keyboard

我正在尝试添加 touchid 来解锁自定义键盘扩展的受密码保护的部分。

当我将此代码添加到自定义键盘扩展的 UIInputViewController 时,它会生成运行时错误

let authContext = LAContext()

错误是:

2015-09-01 22:18:50.524 AS_Custom_KB[21508:2656253] plugin com.example.AS-Custom-KB.AS-Custom-KeyBoard interrupted 2015-09-01 22:18:50.545 AS_Custom_KB[21508:2656253] plugin com.example.AS-Custom-KB.AS-Custom-KeyBoard invalidated 2015-09-01 22:18:51.635 AS_Custom_KB[21508:2656082] viewServiceDidTerminateWithError:: Error Domain=_UIViewServiceInterfaceErrorDomain Code=3 "The operation couldn’t be completed. (_UIViewServiceInterfaceErrorDomain error 3.)" UserInfo=0x174273f80 {Message=Service Connection Interrupted}

相同的代码在模拟器上运行良好,但由于模拟器不支持 TouchID 而无法执行任何操作。该代码在常规应用程序(而不是自定义键盘扩展)中也能正常工作。

我已经尝试查看 LAContext 文档,但没有找到任何关于它为什么会导致这样的错误的信息,也没有找到任何关于无法从扩展中使用它的信息。

关于为什么会发生这种情况,或者如何通过自定义键盘扩展使其正常工作,有什么想法吗?有没有人能够让 touchid 从自定义键盘扩展中工作?

经过 24 小时的研发,我自己找到了答案,我发现答案非常简单,设置也很简单

在您的 NSExtensionAttributes

中设置 RequestsOpenAccess