iOS钥匙串中的项目能否在应用程序卸载和重新安装后生效?

时间:2013-09-20 07:43:57

标签: ios keychain

我正在寻找有关iOS钥匙串项目的文档。我的具体问题是,如果钥匙串项在应用程序卸载和重新安装周期后仍然存在。 它似乎从iOS 4(或者甚至iOS 3)那样工作,但我找不到Apple的任何文档,说明这实际上应该以这种方式工作。

我想弄清楚的是,如果我可以信任(不是“希望”或“猜测”),钥匙串中的物品将在应用程序卸载后继续存在。

编辑:我意识到Daij-Djan指出的问题有点不清楚。我正在寻找的是支持众所周知的行为的官方文档。

更新2017-04-04:请参阅下面的答案,iOS 10.3测试版中的行为更改。它在iOS 10.3中正常工作,但在将来的版本中可能会有所改变。

3 个答案:

答案 0 :(得分:17)

我在Apple开发者论坛上挖掘,而Apple开发人员(eskimo1,又名Quinn)在2012-08-27表示这是当前的行为,但这是他知道没有/记录/行为,所以这个可能会在未来发生变化。他还说删除共享的钥匙串项目总是很棘手,这也是它尚未解决的原因之一。

所以我想这会让问题悬而未决:没有明确的答案。它没有记录,可以随时更改。依赖它可能会在将来引发问题。

更新2017-04-04:

iOS 10.3 测试版中,卸载应用时会删除应用的钥匙串信息,但此行为似乎已在最终的10.3版本中删除。在Apple Documentation建议这将改变,我们不应该依赖于在卸载应用程序后完整的钥匙串访问数据。 另请参阅iOS 10.3 beta 3 doesn't persist data of KeychainItem

答案 1 :(得分:7)

也许这就是你要找的东西 Apple Documentation

  

注意:在iPhone上,Keychain权限取决于用于签署应用程序的配置文件。请确保在不同版本的应用程序中始终使用相同的配置文件。

答案 2 :(得分:6)

是的,他们会的。

看到我的相关问题:

How to find out WHEN a user bought the app / installed it for the first time (possible without UDID?)


我看到了它:

'正式'这是因为钥匙串适用于多个应用程序......并且它“属于”操作系统:

Apple Documentation

  

钥匙串是一个保存密码的加密容器   多种应用和安全服务。

=> ergo钥匙串幸存了应用程序

PLUS

钥匙串项可以在多个应用之间共享