我使用keychain
进行身份验证,然后在后台将位置信息发送到服务器。
但是由于kSecAttrAccessibleAlways
已被删除,我将不得不使用kSecAttrAccessibleAfterFirstUnlock
。这允许在重新启动手机后首次解锁后使用keychain
。
问题是,如果用户重新启动手机,并且位置在首次解锁前更改,则身份验证将失败,因为我们无法从keychain
获取。
我该如何解决这个问题。无法访问如何查找keychain
并停止身份验证过程。
感谢。
答案 0 :(得分:2)
在用户首次解锁设备并启动设备之前,您的应用如何运行?
BTW,根据最新的文档,kSecAttrAccessibleAlways不会被弃用。也许我错过了什么......答案 1 :(得分:1)
这取决于您的确切设置。例如,VoIP和区域监控可以在首次解锁之前自动启动应用程序。启用Apple Watch的应用可以在手机首次解锁之前从后台启动手机应用。但是,在重新启动手机之后,所有其他服务(包括后台提取)都不会激活,直到用户首次输入密码,因此您可以安全地使用这些方案。但对于区域监控,解决方案可能是更改功能,以便用户必须在首次解锁后打开应用程序一次以进行身份验证并向服务器发送信息。例如,在后台缓存位置数据,然后当用户打开应用程序时,它会继续执行预期的功能。