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
这一行,你可以在Development
和Production
之间来回切换它的值。
【讨论】:
这不起作用。当您启动应用程序时,它会因代码签名错误而终止它。 这对我来说非常有效。我的问题是我在使用 CloudKit 时没有部署 Dev -> Prod 环境。【参考方案2】:我知道这对于那些发帖的人来说可能有点晚了,但对于其他有同样问题的人来说,在权利文件中将 com.apple.developer.icloud-container-environment
从 Development
更改为 Production
然后从您的设备中删除您的应用程序,以便您获得一个干净的构建。当你运行它时,它应该可以工作。关键是要有一个干净的构建。
【讨论】:
这应该是对 existing answer 的评论或编辑,其中 90% 的内容相同。 这是 10% 的开发人员遗漏并说它不起作用。干净的构建【参考方案3】:更新:这在 CloudKit 的更高版本中发生了变化,请忽略这一点并查看接受的答案。
不,没有办法做到这一点。
虽然您可以访问与您的 iOS 应用程序相同的容器,但您只能访问“开发”环境,直到您将应用程序作为 Mac 应用程序导出到 App Store(这可能不是您作为测试工具的目标)。
App Store 应用程序再次只能访问“生产”环境。
在特定环境中没有其他 API 可以访问 CloudKit 容器。
【讨论】:
这是不正确的。您确实可以按照@snagra 的答案中的说明强制应用使用生产 CloudKit 环境。 请注意,我的回答来自 2015 年,自那以后 CloudKit 有了很大改进。 :)以上是关于CloudKit:将容器环境从开发切换到生产的主要内容,如果未能解决你的问题,请参考以下文章