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:将记录从开发转移到生产的主要内容,如果未能解决你的问题,请参考以下文章

将 iOS 应用从 Cloudkit 开发转移到生产

CloudKit 支持应用程序开发到生产部署

CloudKit:将容器环境从开发切换到生产

无法从 Cloudkit Cloud (JS) 检索所有记录

部署到生产:为啥 CloudKit 删除订阅类型?

CloudKit“部署到生产”不显示记录更改,“部署”灰显