CloudKit:将记录从开发转移到生产
Posted
技术标签:
【中文标题】CloudKit:将记录从开发转移到生产【英文标题】:CloudKit: Moving records from Development to Production 【发布时间】:2017-04-28 05:26:13 【问题描述】:我正准备将我的应用提交到 App Store。从我所做的研究来看,似乎没有简单的方法将记录从 CloudKit 的开发环境移动到其生产环境。根据这个答案 (Move record from development to production in CloudKit?),我需要将 Development 中的所有记录下载到某种文件中,然后将它们上传到 Production。有人可以为我再分解一下这个过程吗?我应该如何下载这些记录?我应该制作什么样的文件?我不明白。谢谢!
【问题讨论】:
【参考方案1】:没有“应该”使用的方法,因为没有支持跨环境迁移数据的方法。没有可以下载并简单地重新上传的“文件”。 Apple 期望的正常路径是:在 dev 环境中创建 schema,在 dev 环境中创建测试记录,将 schema 部署到 prod 环境,然后在 prod env 中重新开始新记录。由于该路径不会跨环境保存数据,因此您几乎只能靠自己找到一种方法来自己保存数据。
您引用的答案是建议使用这种方法 (https://***.com/a/40414108/1641444) 在 dev 和 prod 环境之间切换,以便执行以下操作:
-
构建配置为访问 Dev env 的应用
您的应用程序会检索您要迁移的所有记录。检索您的所有公共 ID 记录。检索此用户私有数据库中的所有记录。您必须找出必要的查询来检索所有记录。
您的应用程序将这些记录保存在您的设备上。如何执行此操作完全取决于您,具体取决于您拥有的数据类型和数量。
重新构建您的应用,重新配置以访问 prod 环境(显然,如果您还没有这样做,请将您的架构部署到 prod)
您的应用会重新读取您在第 3 步中保存的数据
您的应用使用该数据在 prod 环境中创建新记录。
将您的应用提交到应用商店。
您在第 3 步中选择如何保存数据取决于您有多少记录、它们存储的数据类型以及您熟悉的保存/检索数据的方法。就个人而言,我的应用程序中有 SQL 数据库,所以我可能只是创建新表并将记录存储在那里。您可以打开另一个描述您正在使用的架构/数据的问题,并询问有关如何将其保存在设备上并稍后重新阅读的想法。
此外,您只能迁移已登录设备的 iCloud 帐户的 privateDB 记录。如果您使用了具有多个 iCloud 帐户的开发版本,则每个人都需要重复该过程才能迁移其所有私有数据库记录。
如果您没有太多记录且没有二进制数据,另一种选择是使用 cloudkit 仪表板在 prod 数据库中手动创建新记录。
如果您有一个包含大量记录类型和/或字段类型的复杂架构,则第 2、3、5 和 6 步的编码可能非常困难(或至少非常耗时)。
【讨论】:
以上是关于CloudKit:将记录从开发转移到生产的主要内容,如果未能解决你的问题,请参考以下文章