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

Posted

技术标签:

【中文标题】CloudKit:将容器环境从开发切换到生产【英文标题】:CloudKit: switch container environment from Development to Production 【发布时间】:2014-12-08 18:01:29 【问题描述】:

我正在构建一个测试工具来验证 CloudKit 中的内容,但我希望能够选择容器的环境。

ios 上,您可以在导出应用进行临时测试时选择“开发”或“生产”环境,但在 OS X 上没有该选项。它始终指向“开发”环境。

任何人都知道,是否有一种编程方式来设置或选择您想要使用的容器环境,无论是在 OS X 还是 iOS 上?

【问题讨论】:

我遇到了同样的问题。可能值得在您的标题中将“沙盒”切换为“开发”,因为这是正确的术语。我看到另一个 SO 问题,他们说将 com.apple.developer.icloud-container-environment 添加到“生产”值的权利中。这导致了代码签名错误。 :-( 如果您找到解决方案,请告诉我。 【参考方案1】:

在授权文件中,添加com.apple.developer.icloud-container-environment这一行,你可以在DevelopmentProduction之间来回切换它的值。

【讨论】:

这不起作用。当您启动应用程序时,它会因代码签名错误而终止它。 这对我来说非常有效。我的问题是我在使用 CloudKit 时没有部署 Dev -> Prod 环境。【参考方案2】:

我知道这对于那些发帖的人来说可能有点晚了,但对于其他有同样问题的人来说,在权利文件中将 com.apple.developer.icloud-container-environmentDevelopment 更改为 Production 然后从您的设备中删除您的应用程序,以便您获得一个干净的构建。当你运行它时,它应该可以工作。关键是要有一个干净的构建。

【讨论】:

这应该是对 existing answer 的评论或编辑,其中 90% 的内容相同。 这是 10% 的开发人员遗漏并说它不起作用。干净的构建【参考方案3】:

更新:这在 CloudKit 的更高版本中发生了变化,请忽略这一点并查看接受的答案。

不,没有办法做到这一点。

虽然您可以访问与您的 iOS 应用程序相同的容器,但您只能访问“开发”环境,直到您将应用程序作为 Mac 应用程序导出到 App Store(这可能不是您作为测试工具的目标)。

App Store 应用程序再次只能访问“生产”环境。

在特定环境中没有其他 API 可以访问 CloudKit 容器。

【讨论】:

这是不正确的。您确实可以按照@snagra 的答案中的说明强制应用使用生产 CloudKit 环境。 请注意,我的回答来自 2015 年,自那以后 CloudKit 有了很大改进。 :)

以上是关于CloudKit:将容器环境从开发切换到生产的主要内容,如果未能解决你的问题,请参考以下文章

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

在 CloudKit 中将记录从开发转移到生产?

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

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

使用连接到生产环境的 CloudKit 运行 Mac App

如何将证书从开发切换到生产?