CloudKit:将记录从开发转移到生产

mle*_*coz 3 ios cloudkit

我正准备将我的应用程序提交到 App Store。根据我所做的研究,似乎没有简单的方法可以将记录从 CloudKit 的开发环境移动到生产环境。根据这个答案(将记录从CloudKit中的开发移动到生产?),我需要将开发中的所有记录下载到某种文件中,然后将它们上传到生产。有人可以为我进一步分解这个过程吗?我该如何下载这些记录?我应该制作什么样的文件?我不明白。谢谢!

Thu*_*unk 8

没有您“应该”使用的方法,因为没有受支持的跨环境迁移数据的方法。不存在您可以下载并简单地重新上传的“文件”。Apple 期望的正常路径是:在开发环境中创建模式,在开发环境中创建测试记录,将模式部署到生产环境,然后在生产环境中使用新记录重新开始。由于该路径不能跨环境保存数据,因此您几乎需要自己找到一种方法来保存数据。

您引用的答案建议使用这种方法(/sf/answers/2828987591/)在开发和生产环境之间切换,以便执行以下操作:

  1. 构建配置为访问开发环境的应用程序
  2. 您的应用程序会检索您想要迁移的所有记录。检索您的所有公共 ID 记录。检索该用户的私有数据库中的所有记录。您必须找出必要的查询来检索所有记录。
  3. 您的应用程序会将这些记录保存在您的设备上。如何执行此操作完全取决于您,具体取决于您拥有的数据的类型和数量。
  4. 重新构建您的应用程序并重新配置为访问产品环境(显然,如果您还没有这样做,请将您的架构部署到产品)
  5. 您的应用程序会重新读取您在步骤 3 中保存的数据
  6. 您的应用程序使用该数据在产品环境中创建新记录。
  7. 将您的应用程序提交到应用程序商店。

您在步骤 3 中选择如何保存数据将取决于您拥有多少条记录、它们存储的数据类型以及您熟悉的保存/检索数据的方法。就我个人而言,我的应用程序中有 SQL 数据库,因此我可能只是创建新表并将记录存储在那里。您可以提出另一个描述您正在使用的架构/数据的问题,并询问有关如何将其保存在设备上并稍后重新阅读的想法。

此外,您只能迁移登录设备的 iCloud 帐户的 privateDB 记录。如果您使用了具有多个 iCloud 帐户的开发版本,则每个帐户都需要重复这一过程才能迁移其所有私有数据库记录。

如果您没有太多记录并且没有二进制数据,另一种选择是使用 cloudkit 仪表板在 prod 数据库中手动创建新记录。

如果您有一个包含大量记录类型和/或字段类型的复杂模式,则步骤 2、3、5 和 6 可能非常难以编码(或者至少非常耗时)。