Best Practices for Using CKAssets in Public CloudKit Database for Social Features

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

Best Practices for Using CKAssets in Public CloudKit Database for Social Features
 
 
Q