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

Viewed 300

Does anyone know the difference between these 2 entitlement keys?

Apple's documentation in different places says both are for the same thing: enabling iCloud document storage.

1 Answers

The values for com.apple.developer.icloud-container-identifiers specify the iCloud container IDs your app uses in production.

Not to be confused with the values for com.apple.developer.icloud-container-development-container-identifiers, which specifies the iCloud container IDs your app uses in development/staging.

Some iCloud containers are for key-value storage, other iCloud containers are for document storage, others are for Core Data storage, etc. So com.apple.developer.ubiquity-kvstore-identifier is used to specify the container IDs you'll use just for key-value storage.

This example should illustrate:

<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>

See the full example in the relevant Apple Tech Note.

Related