我在iPhone 5s上通过调试器运行iOS应用程序 . 我正在使用钥匙串存储密码(我使用Apple的KeychainItemWrapper示例来存储和检索我的钥匙串项目) . 大约99.99%的时间,钥匙链检索工作完美 . 但是,有两种情况我的应用程序无法获取密码 . 例如,曾经,我的手机遇到内存压力,我不得不重新启动手机并重新启动应用程序 . 应用程序重新启动后,我的应用程序无法再从钥匙串中检索密码 . 我想知道这个密码丢失是否是由这个内存压力造成的? iOS清除钥匙串数据还有哪些其他情况?有没有办法提出这个?
2 回答
iOS钥匙串与您的应用程序的内存压力非常无关 .
可能有两种情况:
不知何故,您碰巧重置了手机 - 钥匙串数据将丢失(除非您的钥匙串与icloud同步) .
你以某种方式从wrapper调用
resetKeychainItem
.如果不看一下你的代码就无济于事 .
您可能找不到临时值,正如您在此问题中看到的那样:KeychainItemWrapper not getting loaded on iOS 9 OSStatus -34018 (errSecMissingEntitlement)以及苹果论坛上的相关问题:https://forums.developer.apple.com/thread/4743