Hello Apple Team,
We are looking at developing an iOS feature on our current development that stores user-generated images as CKAssets in the public CloudKit database, with access control enforced by our app’s own logic (not CloudKit Sharing as that has a limit of 100 shares per device). Each story or post is a public record, and users only see content based on buddy relationships handled within the app.
We’d like to confirm that this pattern is consistent with Apple’s best practices for social features. Specifically:
Is it acceptable to store user-uploaded CKAssets in the public CloudKit database, as long as access visibility is enforced by the app?
Are there any performance or quota limitations (e.g., storage, bandwidth, or user sync limits) that apply to CKAssets in the public database when used at scale?
Would CloudKit Sharing be recommended instead, even if we don’t require user-to-user sharing invitations?
For App Review, is this model (public CKAssets + app-enforced access control) compliant with Apple’s data and security expectations?
Are there any caching or bandwidth optimization guidelines for handling image-heavy public CKAsset data in CloudKit?
Thanks again for your time
Yes, using CloudKit public database + your own user system for access control is totally fine.
CloudKit has storage and request rate limites on a public database, and the numbers grow with the user base of your app. However, we don't have a documentation formally documenting the limits, and so I can only suggest that you file a feedback report to request more information.
CloudKit shared database and public database are for different purposes. The former is used to share records between different iCloud accounts; a shared database can only be accessed by the participant who owns the database. The latter is used for the data that is by default accessible to all app users.
Regarding CKAsset
, I don't have anything special off the top of my head. If you have a specific use case to share, I'd see if I have more comments.
Best,
——
Ziqiao Chen
Worldwide Developer Relations.