首页 文章

应用程序卸载后iphone keychain项目是否仍然存在?

提问于
浏览
37

我正在玩idandersen的scifihifi-iphone钥匙串代码并遇到以下行为 - 我设置了密码,比如说

[SFHFKeychainUtils storeUsername:@"User" andPassword:@"123"
                  forServiceName:@"TestService" updateExisting:YES error:&error];

然后从设备中删除测试应用程序并再次安装 - 之前设置的密码似乎仍保留在钥匙串中...
这是预期的行为吗?有没有办法确保我设置的密码将被应用程序删除?

2 回答

  • 2

    是的,这是预期和正确的行为 .

    某些钥匙串项目可能与您控制的其他应用程序共享(共享相同的钥匙串项目访问组) .

    您应该在删除应用时单独保留信息 . 删除应用时,您没有回调或删除钥匙串项的方法 .

  • 30

    Edit: 他们最终还原了我的答案中描述的行为,所以直到每个人都离开这个版本范围,这不应该再发生了 .

    不幸的是,情况已经不是这样了 . 自iOS 10.3以来它已被更改 .

    这是iOS 10.3中的故意更改,以保护用户隐私 . 在删除创建它的应用程序后,不应将可识别用户的信息留在设备上 . 从来没有成为API Contract 的一部分,应用程序创建的钥匙串项目在删除应用程序时仍然存在 . 这一直是一个实现细节 .

    reference here .

相关问题