Xcode 将核心数据迁移到新的 Bundle ID
Xcode migrate Core Data to new Bundle ID
我想更改我的捆绑包 ID(将其设为小写),因为我在 App Store Connect 中设置的捆绑包 ID 全部为小写,但我在 Xcode 中的旧捆绑包 ID 有一个大写字母。在 Xcode 中更改它很简单,但是当我 运行 我的设备上的应用程序时,它会安装一个重复的应用程序而不是替换旧版本(因为包 ID 的大小写不同)。我正在使用 Core Data 来实现数据持久化,并且由于我已经在自己的设备上测试应用程序一段时间并通过它添加数据,所以我真的很想保留我拥有的数据,但将其迁移到应用程序新的包 ID。
到目前为止我发现的所有相关问题都只涉及更改包 ID,而不涉及维护现有数据。有什么好的方法吗?
如果您更改捆绑包 ID,就 iOS 而言,它就是一个不同的应用程序。您有两个不同的应用程序,它们恰好具有相似的包 ID,但它们无法访问彼此的数据,就像任何两个随机应用程序都无法访问对方的数据一样。
如果您还没有发布您的应用程序,意味着它仍在开发中,您可以从旧版本中复制数据,然后将其上传到新版本中。您将几乎完全使用 ,除非在您的情况下您不会删除该应用程序,直到您确定副本正常工作。通过这些步骤,您基本上将数据从一个版本复制到您的 Mac,然后将其从 Mac 复制到另一个版本。
如果您已经发布了您的应用程序,那就更复杂了。一种方法是使用旧 ID 更新应用程序,但启用应用程序组。让更新将其数据复制到共享应用程序组文件夹中。然后使用新 ID 启用应用程序组并让它使用相同的共享文件夹。另一种方法是让两个版本通过一些在线服务同步数据——例如 CloudKit 或 Firebase——这样当应用程序获得新 ID 时,它将通过同步获得新数据。
我想更改我的捆绑包 ID(将其设为小写),因为我在 App Store Connect 中设置的捆绑包 ID 全部为小写,但我在 Xcode 中的旧捆绑包 ID 有一个大写字母。在 Xcode 中更改它很简单,但是当我 运行 我的设备上的应用程序时,它会安装一个重复的应用程序而不是替换旧版本(因为包 ID 的大小写不同)。我正在使用 Core Data 来实现数据持久化,并且由于我已经在自己的设备上测试应用程序一段时间并通过它添加数据,所以我真的很想保留我拥有的数据,但将其迁移到应用程序新的包 ID。
到目前为止我发现的所有相关问题都只涉及更改包 ID,而不涉及维护现有数据。有什么好的方法吗?
如果您更改捆绑包 ID,就 iOS 而言,它就是一个不同的应用程序。您有两个不同的应用程序,它们恰好具有相似的包 ID,但它们无法访问彼此的数据,就像任何两个随机应用程序都无法访问对方的数据一样。
如果您还没有发布您的应用程序,意味着它仍在开发中,您可以从旧版本中复制数据,然后将其上传到新版本中。您将几乎完全使用
如果您已经发布了您的应用程序,那就更复杂了。一种方法是使用旧 ID 更新应用程序,但启用应用程序组。让更新将其数据复制到共享应用程序组文件夹中。然后使用新 ID 启用应用程序组并让它使用相同的共享文件夹。另一种方法是让两个版本通过一些在线服务同步数据——例如 CloudKit 或 Firebase——这样当应用程序获得新 ID 时,它将通过同步获得新数据。