我正准备将我的应用提交到App Store。根据我的调查,似乎没有一种简单的方法可以将记录从CloudKit的开发环境移动到生产环境。根据以下回答(Move record from development to production in CloudKit?),我需要将开发中的所有记录下载到某种文件中,然后将它们上载到生产中。有人能为我详细说明一下这个过程吗?我该怎么下载这些唱片?我该做什么样的文件?我不明白。谢谢!
我正准备将我的应用提交到App Store。根据我的调查,似乎没有一种简单的方法可以将记录从CloudKit的开发环境移动到生产环境。根据以下回答(Move record from development to production in CloudKit?),我需要将开发中的所有记录下载到某种文件中,然后将它们上载到生产中。有人能为我详细说明一下这个过程吗?我该怎么下载这些唱片?我该做什么样的文件?我不明白。谢谢!
2条答案
按热度按时间voase2hg1#
没有你“应该”使用的方法,因为没有支持的跨环境迁移数据的方法。没有你可以下载和简单地重新上传的“文件”。苹果期望的正常路径是:在开发环境中创建一个模式,在开发环境中创建测试记录,将模式部署到生产环境中,然后在生产环境中使用新记录重新开始。由于该路径不跨环境保存数据,因此您几乎要自己找到一种方法来保存数据。
您提到的答案是建议使用此方法(https://stackoverflow.com/a/40414108/1641444)在开发和生产环境之间切换,以便执行以下操作:
1.构建配置为访问开发环境的应用程序
1.你的应用将检索你要迁移的所有记录。检索你的所有公共ID记录。检索此用户的私有数据库中的所有记录。你必须确定检索所有记录所需的查询。
1.您的应用会将这些记录保存在您的设备上,具体操作方式完全取决于您所拥有的数据类型和数量。
1.重新构建您的应用,重新配置以访问prodenv(显然,如果您还没有这样做,请将您的架构部署到prodenv)
1.应用将重新读取您在步骤3中保存的数据
1.您的应用使用该数据在生产环境中创建新记录。
1.将您的应用程序提交到应用程序商店。
在第3步中,您选择如何保存数据将取决于您有多少记录,它们存储的数据类型,以及您熟悉的保存/检索数据的方法。就我个人而言,我的应用程序中有SQL数据库,所以我可能会创建新表并将记录存储在那里。您可以打开另一个问题,描述您要使用的架构/数据。We“我们正在使用,并询问如何将其保存在设备上并稍后重新读取。
此外,您只能迁移已登录设备的iCloud帐户的privateDB记录。如果您使用了多个iCloud帐户的开发版本,则每个帐户都需要重复此过程才能迁移其所有私有DB记录。
另一种选择,如果你没有太多的记录,也没有二进制数据,是使用cloudkit Jmeter 板在prod数据库中手动创建新记录。
如果您有一个包含大量记录类型和/或字段类型的复杂模式,那么步骤2、3、5和6可能非常难以编码(或者至少非常耗时)。
4c8rllxm2#
我也有同样的问题,我发现自己在这里。我找到的唯一解决方案是一个类似于上面的Thunk的。我的版本的解决方案如下:
1.在开发环境中的设备上生成和测试应用程序,这是通常的做法。你的应用程序应包括设备上开发数据的本地存储。
1.在您的开发帐户中,将开发容器部署到生产环境。这将创建相同的架构,但不会将数据从开发环境传输到生产环境。
1.将你的应用上传到appstore并通过testFlight分发生产版本。你的应用的设备开发版本将被覆盖,但本地数据文件仍将存在。
1.新的生产版本将上传之前的本地(开发)数据,然后同步到生产云容器(假设这是应用的设计方式)。