我可以从 iCloud 容器中的生产环境中删除记录类型吗?

Posted

技术标签:

【中文标题】我可以从 iCloud 容器中的生产环境中删除记录类型吗?【英文标题】:Can I delete a Record Type from the Production environment in an iCloud Container? 【发布时间】:2017-08-11 17:46:55 【问题描述】:

我对 iCloud 很陌生 - 我制作了一个容器,然后在其中创建了一个记录类型。然后部署到生产环境。

好吧,我不再想要这种记录类型了,所以我试图删除它。

Invalid attempt to delete a record type which is active in a production container.

嗯,我好像不能从生产中删除它。

也许如果我在开发环境中使用红色重置按钮,它会让我从生产环境中清除数据?

will be revert to the version in the production environment

这对我没有帮助 - 那我该怎么办?肯定有一种方法可以在不创建全新容器的情况下消除该记录类型吗?

【问题讨论】:

我有一个小问题,我觉得太愚蠢了,不值得再问一个 SE 问题:仪表板中的容器显示“开发中” - 是否应该更改为“生产中”或其他什么?我的意思是,如果我部署到 App Store,肯定不应该说是在开发中,对吧? 【参考方案1】:

你的主要问题和你的评论问题是相关的。

在云套件仪表板上,每个容器都有一个用于开发环境的蓝色框和一个用于生产环境的绿色框。测试时,您的应用程序将访问(蓝色)开发环境,除非您专门配置 .entitlements 文件以指向生产环境。通过 Testflight 发布的 Beta 应用和在应用商店发布的应用将始终访问(绿色)生产环境。

(在我的情况下,我有人通过 testflight 测试我的应用程序,从而访问 prod 环境。因此,为了与他们共享数据,我重新配置了我的 .entitlements 文件以指向 prod,因此当我从 xcode 构建时,我将环境用作我的测试人员。但是,我只是在我的架构相当稳定之后才这样做,因为切换回 dev 以创建新记录,推送到 prod,切换回 prod 有点乏味。)

您可以在(蓝色)开发环境中动态创建和删除记录类型。但是,一旦您部署到(绿色)prod 环境,该模式就会在该容器中永久存在。您不能从(绿色)产品环境中删除记录类型。而且,一旦将(蓝色)开发环境中的记录类型推入生产环境,您就无法删除它们。不,你也不能删除容器。您可以创建一个新容器并告诉您的应用程序使用该不同的容器。但是您的原始记录类型的原始容器现在是永久的。

所以,长话短说,您可以根据需要创建任意数量的容器,但不能删除它们。您可以根据需要在蓝色开发环境中添加和删除记录类型,除非/直到您将架构推送到绿色生产环境。然后这些记录类型也成为永久性的。

蓝色开发环境和绿色生产环境永远不会更改“开发中”或“已部署到生产”标签。您的应用将根据应用的来源访问 dev 或 prod 环境。

【讨论】:

以上是关于我可以从 iCloud 容器中的生产环境中删除记录类型吗?的主要内容,如果未能解决你的问题,请参考以下文章

清除/清除 CloudKit 容器的所有用户 iCloud 记录

关闭 iCloud 并从无处不在的容器中删除项目

iCloud 无处不在的容器没有在应用程序删除时被清理?

iCloud 容器默认 vs 自定义

删除 iCloud 容器内容

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