我正在玩idandersen的scifihifi-iphone密钥链代码并遇到以下行为 - 我设置了密码,比如说
[SFHFKeychainUtils storeUsername:@"User" andPassword:@"123"
forServiceName:@"TestService" updateExisting:YES error:&error];
然后从设备中删除测试应用程序并再次安装 - 先前设置的密码似乎保留在钥匙串中...
这是预期的行为吗?有没有办法确保我设置的密码将被应用程序删除?
答案 0 :(得分:30)
是的,这是预期的正确行为。
某些钥匙串项可能会与您控制的其他应用共享(共享相同的钥匙串项访问组)。
删除应用后,您应该只保留信息。删除应用时,您没有回复或删除钥匙串项目的方法。
答案 1 :(得分:2)
修改强> 他们最终还原了我的答案中描述的行为,所以直到每个人都离开那个版本的范围,这不应该再发生了。
不幸的是,情况已经不是这样了。自iOS 10.3以来它已被更改。
这是iOS 10.3中的故意更改,以保护用户隐私。在创建用户的应用程序被删除后,不应将可识别用户身份的信息留在设备上。
钥匙串项目从未成为API合约的一部分 当应用程序被删除时,应用程序创建的应用程序将存活这有 一直是一个实施细节。
请参阅reference here。