kSecAttrAccessible始终在ios 9中弃用

时间:2015-08-20 08:00:17

标签: ios keychain ios9

我使用keychain进行身份验证,然后在后台将位置信息发送到服务器。

但是由于kSecAttrAccessibleAlways已被删除,我将不得不使用kSecAttrAccessibleAfterFirstUnlock。这允许在重新启动手机后首次解锁后使用keychain

问题是,如果用户重新启动手机,并且位置在首次解锁前更改,则身份验证将失败,因为我们无法从keychain获取。

我该如何解决这个问题。无法访问如何查找keychain并停止身份验证过程。

感谢。

2 个答案:

答案 0 :(得分:2)

在用户首次解锁设备并启动设备之前,您的应用如何运行?

BTW,根据最新的文档,kSecAttrAccessibleAlways不会被弃用。也许我错过了什么......

答案 1 :(得分:1)

这取决于您的确切设置。例如,VoIP和区域监控可以在首次解锁之前自动启动应用程序。启用Apple Watch的应用可以在手机首次解锁之前从后台启动手机应用。但是,在重新启动手机之后,所有其他服务(包括后台提取)都不会激活,直到用户首次输入密码,因此您可以安全地使用这些方案。但对于区域监控,解决方案可能是更改功能,以便用户必须在首次解锁后打开应用程序一次以进行身份​​验证并向服务器发送信息。例如,在后台缓存位置数据,然后当用户打开应用程序时,它会继续执行预期的功能。