在后台访问钥匙串

时间:2018-02-22 09:59:28

标签: swift ios11 keychain

当我设置密码/触摸ID访问控制时,我无法在后台从钥匙串访问我的密码。

详细

我的SecItem将kSecAttrAccessible设置为kSecAttrAccessibleAlways以进行调试,我使用SecItemCopyMatching访问我的密码。

Sample configuration for kSecAttrAccessControl
SecAccessControlCreateWithFlags(
    kCFAllocatorDefault,
    kSecAttrAccessibleAlways,
    .userPresence,
    nil)

当我尝试访问后台/前景中的密钥时,一切正常。

一旦我强制使用密码/ touch-id访问密码,当我在前台时,系统会提示我输入密码。然而;如果我尝试从后台做同样的事情,那么我收到错误代码-25308和错误文本说"用户交互是必需的"。

我希望当应用程序在后台时弹出密码/触摸ID屏幕,这样我就可以从钥匙串中获取密码来执行后台任务。

可以从后台使用密码/ touch-id进行钥匙串访问吗?

其他信息

  • 我正在清理钥匙串,并使用不同的访问控制创建新项目。
  • 我的功能中有后台模式,并在Info.plist中添加。
  • 此应用程序能够从锁定屏幕触发密码,因此我确信它有可能,但它可能无法访问钥匙串 - https://help.duo.com/s/article/3142?language=en_US

0 个答案:

没有答案