在 iOS 上的应用程序之间共享数据

Posted

技术标签:

【中文标题】在 iOS 上的应用程序之间共享数据【英文标题】:Sharing data between apps on iOS 【发布时间】:2017-11-06 19:58:15 【问题描述】:

我有几个共享公共数据(图像、声音文件等)的小应用程序。这些数据使每个应用程序的大小膨胀。当用户安装 2 个或更多这些应用程序时,这些应用程序会因重复数据而导致设备空间膨胀。有没有一种方法可以在我的应用之间共享这些数据,这样每个应用就不会在其捆绑包中复制这些数据?

【问题讨论】:

【参考方案1】:

您可以使用应用组在应用之间拥有一个公共文件空间。可以在此处找到如何使用它们的示例:Sharing data in between apps in ios

您可以将其用作不复制每个捆绑包中数据的解决方案的一部分。一种方法可能是将数据托管在某处的服务器上,安装应用程序后,您可以检查应用程序组中的公共数据,如果不存在,您可以下载并将其存储在那里。然后安装的下一个应用程序将具有可用的数据。这应该有助于避免将其包含在每个小型应用程序中。

您可以设置代码来检查共享位置并在框架中下载数据并在所有应用程序之间共享它,从而使其更易于维护。如果您还没有内容管理系统,那么您可以搜索一些支持 iOS 的系统。那里有很多。然后,您将在那里托管共享数据。这将使您能够在每个应用程序在现场时更新它们的数据,这可能会节省时间。如果这些应用程序非常小,这可能是矫枉过正。

【讨论】:

您认为我可以通过将这些数据存储为按需资源并将其集成到您描述的应用程序组解决方案中来避免拥有自己的服务器吗? developer.apple.com/library/content/documentation/IDEs/… 是的,我认为这很适合您的用例。我想这应该会让你很容易设置。【参考方案2】:

不,这目前是不可能的。理想情况下,这种资源共享需要创建一个通用的框架包, 作为第三方框架单独提交到 App Store,这样即使您的应用程序只有一个出现在 设备,它将能够加载适当的资源并正常运行。

Apple 目前仅允许在 app bundle 中嵌入第三方框架。 即使您的两个应用程序使用相同版本的框架,它们也必须单独嵌入。

【讨论】:

以上是关于在 iOS 上的应用程序之间共享数据的主要内容,如果未能解决你的问题,请参考以下文章

iOS:在不同设备上的不同应用程序之间共享设置

在应用程序上的许多用户之间共享核心数据

在 Mac 和 iOS 应用之间共享应用内购买

在 iOS / Mac 中的用户之间共享文件 [关闭]

您可以在不同应用程序之间共享 CloudKit 上的数据吗

有没有办法在 iOS 和 WatchOS 应用之间共享 Firebase Auth 登录?