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

时间:2017-04-28 05:26:14

标签: ios cloudkit

我准备将我的应用程序提交到App Store。从我所做的研究来看,似乎没有简单的方法将记录从CloudKit的开发环境转移到其生产环境。根据这个答案(Move record from development to production in CloudKit?),我需要将我在Development中的所有记录下载到某种文件中,然后将它们上传到Production。有人可以为我打破这个过程吗?我该如何下载这些记录?我应该制作什么样的文件?我不明白。谢谢!

1 个答案:

答案 0 :(得分:3)

没有“你应该”使用的方法,因为没有支持的跨环境迁移数据的方法。没有“文件”可以下载并只是重新上传。 Apple期望的正常路径是:在dev env中创建模式,在dev环境中创建测试记录,将模式部署到prod环境,然后在prod env中重新开始使用新记录。由于该路径不会保留envs中的数据,因此您可以自己找到一种方法来自行保存数据。

您引用的答案是建议使用此方法(https://stackoverflow.com/a/40414108/1641444)在dev和prod环境之间切换,以便执行以下操作:

  1. 构建配置为访问Dev env
  2. 的应用
  3. 您的应用会检索您要迁移的所有记录。检索所有公共ID记录。检索此用户的专用数据库中的所有记录。您必须找出必要的查询来检索所有记录。
  4. 您的应用会将这些记录保存在您的设备上。如何执行此操作完全取决于您拥有的数据类型和数量。
  5. 重新构建您的应用程序以重新配置以访问prod env(显然,如果您还没有这样做,请将您的架构部署到prod)。
  6. 您的应用重新读取您在步骤3中保存的数据
  7. 您的应用使用该数据在prod env中创建新记录。
  8. 将您的应用提交到应用商店。
  9. 如何选择在步骤3中保存数据取决于您拥有的记录数量,存储的数据类型以及保存/检索您熟悉的数据的方法。就个人而言,我的应用程序中有SQL数据库,所以我可能只是创建新表并将记录存储在那里。您可以打开另一个描述您正在使用的架构/数据的问题,并询问有关如何将其保存在设备上以及稍后重新阅读的想法。

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

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

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