I have a large image stored as a CKAsset, as part of a record that also contains a date and other details which may potentially change. The image and other details are all stored locally in my app.
If I change the date (say) and try to resubmit the record to CloudKit (by creating a new record, setting up its data fields, and using CKModifyRecordsOperation) it appears the CKAsset data is re-uploaded and subsequently downloaded to all devices.
If I try not setting the CKAsset information in the record, I get a "failed to modify some records" error message.
How can I avoid unnecessary transfers of the image (I am not worried about the other data being sent unnecessarily, as it is small)?
Should I be storing the CKAsset to a seperate linked record, so that I only have to download the image when it changes?
To avoid extra unnecessary transfers of large chunks of data, you can store the image in a separate record.
This way, small data items (that may be updated frequently) can be synced more often without having the image adversely affecting your data caps.