将数据移动到已启动应用程序中的共享组

Moving data to shared group in already launched app

我的应用程序已经在 App Store 上,但现在我正在创建一个 Apple Watch Extension,这也意味着将数据存储在 Shared Group 中。

对于已经下载我的应用程序的客户,我如何在他们第一次启动新更新时从当前存储的位置(Core DataUserDefaults)移动数据?

执行此操作最有效且资源占用最少的方法是什么,并且只为老用户第一次打开新更新时执行此操作?

我有一个类似的问题,但只是用户默认设置。我所做的只是,当应用程序启动时,它首先查看共享组位置,如果失败,它会查看旧位置,然后将其移动到新位置。

这意味着它只需要第一次检查多个位置,就像这样的过程:

  • 使用共享套件名称创建 UserDefaults
  • 如果在您需要的共享套件中没有带值的键,这可能是用户在需要迁移后第一次启动
  • 所以现在从标准 UserDefaults 中获取所有值并将它们放入您使用共享套件名称创建的 UserDefaults 中

下次启动该应用程序时,它会在共享套件中找到 keys/values,根本不需要查看标准的 UserDefaults。