iOS Keychain 和 App group 有什么区别

What's the difference between Keychain and App group in iOS

如您所知,当我们在 iOS 中的两个应用程序之间共享数据时,我们可以使用钥匙串。而iOS8之后,我们也可以使用app groups来实现同样的功能; 我的问题是钥匙串和应用程序组之间有什么区别,哪个更好,为什么?

钥匙串

如果我们将数据保存在钥匙串中,除非完全重置,否则当您卸载应用程序时它仍会保留在那里。

例如,您可以实现一些登录功能并将其保存在钥匙串中。如果用户稍后卸载应用程序然后重新安装应用程序,您可以从钥匙串中获取这些值。

应用组

应用组主要用于在应用之间共享数据(例如 SQLite 或 Core Data)。

例如,如果您的应用程序有一个小部件并且它想要从 SQLite 或 Core Data 获取数据,那么您将创建一个应用程序组并将 SQLite 或 Core Data 文件保存在该应用程序组路径而不是应用程序的路径中文档目录。现在您的小部件和应用程序都可以跟踪您的数据库文件中的更改。

这些是您所问问题的一些常见示例。