我在 iOS 10.2.1 设备和 iOS 10.3 beta 3 设备中观察到https://developer.apple.com/library/content/samplecode/GenericKeychain/Introduction/Intro.html的应用程序行为
钥匙串数据在 iOS 10.3 beta 3 中被删除。这在早期版本中仍然存在。
我们有其他选择吗?
最初 (从 iOS 10.3 beta 1 到 5?)钥匙串没有保留。
苹果员工:
这是 iOS 10.3 中为保护用户隐私而进行的有意更改。在删除创建它的应用程序后,不应将可以识别用户的信息留在设备上。
没有人给你任何保证它会在未来以这种方式工作。
虽然按照我们的方式使用它很好,但我强烈建议您编写您的应用程序,以便在这种行为发生变化时它可以合理地运行。
现在 10.3 已经正式发布,包括在这个Apple 的开发者论坛帖子中的多方已经确认,这个问题在最终版本中不存在。
卸载应用程序时不会删除钥匙串数据。
从 iOS 10.3 beta 2 开始,删除应用程序时将删除钥匙串信息。钥匙串信息曾经在应用程序卸载和重新安装之间持续存在,但这不是预期的行为,并且是人们习惯的实施的副作用。
你可能只需要习惯新的行为,除非他们在管道中有一个绝密的钥匙串替换。自 10.3 beta 2 以来,通过使用共享所述钥匙串信息的应用组并在应用组中安装另一个应用程序,钥匙串数据仍应在应用程序卸载/重新安装期间保持不变;所以它不会删除钥匙串信息。另外我猜它不会从 iCloud 中删除与 iCloud 同步的项目,而只是删除本地副本。不过只是猜测。
以下是有关该问题的苹果开发者论坛的链接: