Contents

CKRecordZone.EncryptionScope.perZone

Zone uses per-zone encryption keys for encrypted values across all records and the zone-wide share, if present.

Declaration

case perZone

Discussion

This is an optional optimization that can reduce the overall storage used by encryption keys in a zone. Note that:

  • Record zones using per-zone encryption only support zone-wide sharing.

  • Encryption scope can only be assigned at zone creation and cannot be changed for the lifetime of the zone.

  • The server does not return zones using per-zone encryption to device OS versions older than the corresponding API availability version.

  • An older OS trying to overwrite an existing zone using per-zone encryption due to a naming collision results in a .serverRejectedRequest error.

  • On device OS upgrade, your application is responsible for fetching database changes via CKFetchDatabaseChangesOperation with a nil sync token to verify it has received all the zones available to it from the server.