com.apple.developer.icloud-container-identifiers 和 com.apple.developer.ubiquity-kvstore-identifier 之间的区别

Difference between com.apple.developer.icloud-container-identifiers and com.apple.developer.ubiquity-kvstore-identifier

有人知道这两个授权密钥的区别吗?

Apple 在不同地方的文档说两者都是为了同一件事:启用 iCloud 文档存储。

com.apple.developer.icloud-container-identifiers 的值指定您的应用程序在生产中使用的 iCloud 容器 ID。

不要与 com.apple.developer.icloud-container-development-container-identifiers 的值混淆,后者指定您的应用在 development/staging 中使用的 iCloud 容器 ID。

一些 iCloud 容器用于键值存储,其他 iCloud 容器用于文档存储,其他的用于核心数据存储等。因此 com.apple.developer.ubiquity-kvstore-identifier 用于指定您将仅使用的容器 ID用于键值存储。

这个例子应该说明:

<key>com.apple.developer.ubiquity-kvstore-identifier</key>
<string>4ZX4Z3MVHG.*</string>

<key>com.apple.developer.icloud-container-identifiers</key>
<array>
    <string>iCloud.com.appleseedinc.MyProject</string>
    <string>iCloud.com.appleseedinc.container1</string>
</array>

请参阅 relevant Apple Tech Note 中的完整示例。