Skip to content

CloudKit iOS xcode13.0 beta1

Manuel de la Pena edited this page Jun 16, 2021 · 3 revisions

#CloudKit.framework https://github.com/xamarin/xamarin-macios/pull/11961

diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKAcceptSharesOperation.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKAcceptSharesOperation.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKAcceptSharesOperation.h	2021-03-16 08:47:37.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKAcceptSharesOperation.h	2021-06-02 12:47:12.000000000 -0400
@@ -6,6 +6,7 @@
 //
 
 #import <Foundation/Foundation.h>
+
 #import <CloudKit/CKDatabaseOperation.h>
 
 @class CKShare, CKShareMetadata;
@@ -25,16 +26,18 @@
  *  @discussion If error is nil then the share was successfully accepted.
  *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
  */
-@property (nonatomic, copy, nullable) void (^perShareCompletionBlock)(CKShareMetadata *shareMetadata, CKShare * _Nullable acceptedShare, NSError * _Nullable error);
+@property (nonatomic, copy, nullable) void (^perShareCompletionBlock)(CKShareMetadata *shareMetadata, CKShare * _Nullable acceptedShare, NSError * _Nullable error)
+CK_SWIFT_DEPRECATED("Use perShareResultBlock instead", macos(10.12, 12.0), ios(10.0, 15.0), tvos(10.0, 15.0), watchos(3.0, 8.0));
 
 /*! @abstract This block is called when the operation completes.
  *
  *  @discussion The @code -[NSOperation completionBlock] @endcode will also be called if both are set.
- *  If the error is @c CKErrorPartialFailure, the error's userInfo dictionary contains a dictionary of shareURLs to errors keyed off of @c CKPartialErrorsByItemIDKey.
- *  This call happens as soon as the server has seen all record changes, and may be invoked while the server is processing the side effects of those changes.
+ *  If the error is @c CKErrorPartialFailure, the error's userInfo dictionary contains a dictionary of shareURLs to errors keyed off of @c CKPartialErrorsByItemIDKey.  These errors are repeats of those sent back in previous @c perShareCompletionBlock invocations
  *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
  */
-@property (nonatomic, copy, nullable) void (^acceptSharesCompletionBlock)(NSError * _Nullable operationError);
+@property (nonatomic, copy, nullable) void (^acceptSharesCompletionBlock)(NSError * _Nullable operationError)
+CK_SWIFT_DEPRECATED("Use acceptSharesResultBlock instead", macos(10.12, 12.0), ios(10.0, 15.0), tvos(10.0, 15.0), watchos(3.0, 8.0));
+
 @end
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKContainer.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKContainer.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKContainer.h	2021-03-16 09:54:42.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKContainer.h	2021-06-02 12:44:15.000000000 -0400
@@ -6,8 +6,9 @@
 //
 
 #import <Foundation/Foundation.h>
-#import <CloudKit/CKDefines.h>
+
 #import <CloudKit/CKDatabase.h>
+#import <CloudKit/CKDefines.h>
 #import <CloudKit/CKOperation.h>
 
 @class CKRecordID, CKUserIdentity, CKShareParticipant, CKShare, CKShareMetadata;
@@ -88,14 +89,17 @@
 /*! @enum CKAccountStatus
  *  @constant CKAccountStatusCouldNotDetermine An error occurred when getting the account status, consult the corresponding NSError.
  *  @constant CKAccountStatusAvailable The iCloud account credentials are available for this application
- *  @constant Parental Controls / Device Management has denied access to iCloud account credentials
- *  @constant No iCloud account is logged in on this device
+ *  @constant CKAccountStatusRestricted Parental Controls / Device Management has denied access to iCloud account credentials
+ *  @constant CKAccountStatusNoAccount No iCloud account is logged in on this device
+ *  @constant CKAccountStatusTemporarilyUnavailable An iCloud account is logged in but not ready. The user can be asked to verify their
+ *  credentials in Settings app.
  */
 typedef NS_ENUM(NSInteger, CKAccountStatus) {
-    CKAccountStatusCouldNotDetermine                   = 0,
-    CKAccountStatusAvailable                           = 1,
-    CKAccountStatusRestricted                          = 2,
-    CKAccountStatusNoAccount                           = 3,
+    CKAccountStatusCouldNotDetermine                                                                      = 0,
+    CKAccountStatusAvailable                                                                              = 1,
+    CKAccountStatusRestricted                                                                             = 2,
+    CKAccountStatusNoAccount                                                                              = 3,
+    CKAccountStatusTemporarilyUnavailable API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0)) = 4
 } API_AVAILABLE(macos(10.10), ios(8.0), watchos(3.0));
 
 /*! @abstract This local notification is posted when there has been any change to the logged in iCloud account.
@@ -132,7 +136,7 @@
 
 @interface CKContainer (ApplicationPermission)
 
-- (void)statusForApplicationPermission:(CKApplicationPermissions)applicationPermission completionHandler:(CKApplicationPermissionBlock)completionHandler;
+- (void)statusForApplicationPermission:(CKApplicationPermissions)applicationPermission completionHandler:(CKApplicationPermissionBlock)completionHandler NS_SWIFT_ASYNC_NAME(applicationPermissionStatus(for:));
 - (void)requestApplicationPermission:(CKApplicationPermissions)applicationPermission completionHandler:(CKApplicationPermissionBlock)completionHandler;
 
 @end
@@ -143,16 +147,31 @@
  *
  *  This work is treated as having @c NSQualityOfServiceUserInitiated quality of service.
  */
-- (void)fetchUserRecordIDWithCompletionHandler:(void (^)(CKRecordID * _Nullable recordID, NSError * _Nullable error))completionHandler;
+- (void)fetchUserRecordIDWithCompletionHandler:(void (^)(CKRecordID * _Nullable recordID, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(userRecordID());
+
+/*! @abstract Fetches all user identities that match an entry in the user's contacts database.
+ *
+ *  @discussion @c CKDiscoverAllUserIdentitiesOperation is the more configurable, @c CKOperation -based alternative to this methods
+ */
+- (void)discoverAllIdentitiesWithCompletionHandler:(void (^)(NSArray<CKUserIdentity *> * _Nullable userIdentities, NSError * _Nullable error))completionHandler API_AVAILABLE(macos(10.12), ios(10.0), watchos(3.0)) API_UNAVAILABLE(tvos) NS_SWIFT_ASYNC_NAME(allUserIdentitiesFromContacts());
+
+/*! @abstract Fetches the user identity that corresponds to the given email address.
+ *
+ *  @discussion Only users who have opted-in to user discoverability will have their identities returned by this method.  If a user with the inputted email exists in iCloud, but has not opted-in to user discoverability, this method completes with a nil @c userInfo.  @c CKDiscoverUserIdentitiesOperation is the more configurable, @c CKOperation -based alternative to this method
+ */
+- (void)discoverUserIdentityWithEmailAddress:(NSString *)email completionHandler:(void (^)(CKUserIdentity * _Nullable_result userInfo, NSError * _Nullable error))completionHandler API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0)) NS_SWIFT_ASYNC_NAME(userIdentity(forEmailAddress:));
+
+/*! @abstract Fetches the user identity that corresponds to the given phone number.
+ *
+ *  @discussion Only users who have opted-in to user discoverability will have their identities returned by this method.  If a user with the inputted phone number exists in iCloud, but has not opted-in to user discoverability, this method completes with a nil @c userInfo.  @c CKDiscoverUserIdentitiesOperation is the more configurable, @c CKOperation -based alternative to this method
+ */
+- (void)discoverUserIdentityWithPhoneNumber:(NSString *)phoneNumber completionHandler:(void (^)(CKUserIdentity * _Nullable_result userInfo, NSError * _Nullable error))completionHandler API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0)) NS_SWIFT_ASYNC_NAME(userIdentity(forPhoneNumber:));
 
-/*! @abstract Fetches all user records that match an entry in the user's address book.
+/*! @abstract Fetches the user identity that corresponds to the given user record id.
  *
- *  @discussion @c CKDiscoverUserIdentityOperation is the more configurable, @c CKOperation -based alternatives to these methods
+ *  @discussion Only users who have opted-in to user discoverability will have their identities returned by this method.  If a user has not opted-in to user discoverability, this method completes with a nil @c userInfo.  @c CKDiscoverUserIdentitiesOperation is the more configurable, @c CKOperation -based alternative to this method
  */
-- (void)discoverAllIdentitiesWithCompletionHandler:(void (^)(NSArray<CKUserIdentity *> * _Nullable userIdentities, NSError * _Nullable error))completionHandler API_AVAILABLE(macos(10.12), ios(10.0), watchos(3.0)) API_UNAVAILABLE(tvos);
-- (void)discoverUserIdentityWithEmailAddress:(NSString *)email completionHandler:(void (^)(CKUserIdentity * _Nullable userInfo, NSError * _Nullable error))completionHandler API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0));
-- (void)discoverUserIdentityWithPhoneNumber:(NSString *)phoneNumber completionHandler:(void (^)(CKUserIdentity * _Nullable userInfo, NSError * _Nullable error))completionHandler API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0));
-- (void)discoverUserIdentityWithUserRecordID:(CKRecordID *)userRecordID completionHandler:(void (^)(CKUserIdentity * _Nullable userInfo, NSError * _Nullable error))completionHandler API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0));
+- (void)discoverUserIdentityWithUserRecordID:(CKRecordID *)userRecordID completionHandler:(void (^)(CKUserIdentity * _Nullable_result userInfo, NSError * _Nullable error))completionHandler API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0)) NS_SWIFT_ASYNC_NAME(userIdentity(forUserRecordID:));
 
 @end
 
@@ -162,11 +181,11 @@
  *
  *  @discussion @c CKFetchShareParticipantsOperation is the more configurable, @c CKOperation -based alternative to these methods.
  */
-- (void)fetchShareParticipantWithEmailAddress:(NSString *)emailAddress completionHandler:(void (^)(CKShareParticipant * _Nullable shareParticipant, NSError * _Nullable error))completionHandler API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0));
-- (void)fetchShareParticipantWithPhoneNumber:(NSString *)phoneNumber completionHandler:(void (^)(CKShareParticipant * _Nullable shareParticipant, NSError *_Nullable error))completionHandler API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0));
-- (void)fetchShareParticipantWithUserRecordID:(CKRecordID *)userRecordID completionHandler:(void (^)(CKShareParticipant *_Nullable shareParticipant, NSError *_Nullable error))completionHandler API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0));
+- (void)fetchShareParticipantWithEmailAddress:(NSString *)emailAddress completionHandler:(void (^)(CKShareParticipant * _Nullable shareParticipant, NSError * _Nullable error))completionHandler API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0)) NS_SWIFT_ASYNC_NAME(shareParticipant(forEmailAddress:));
+- (void)fetchShareParticipantWithPhoneNumber:(NSString *)phoneNumber completionHandler:(void (^)(CKShareParticipant * _Nullable shareParticipant, NSError *_Nullable error))completionHandler API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0)) NS_SWIFT_ASYNC_NAME(shareParticipant(forPhoneNumber:));
+- (void)fetchShareParticipantWithUserRecordID:(CKRecordID *)userRecordID completionHandler:(void (^)(CKShareParticipant *_Nullable shareParticipant, NSError *_Nullable error))completionHandler API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0)) NS_SWIFT_ASYNC_NAME(shareParticipant(forUserRecordID:));
 
-- (void)fetchShareMetadataWithURL:(NSURL *)url completionHandler:(void (^)(CKShareMetadata *_Nullable metadata, NSError * _Nullable error))completionHandler API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0));
+- (void)fetchShareMetadataWithURL:(NSURL *)url completionHandler:(void (^)(CKShareMetadata *_Nullable metadata, NSError * _Nullable error))completionHandler API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0)) NS_SWIFT_ASYNC_NAME(shareMetadata(for:));
 - (void)acceptShareMetadata:(CKShareMetadata *)metadata completionHandler:(void (^)(CKShare *_Nullable acceptedShare, NSError *_Nullable error))completionHandler API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0));
 
 @end
@@ -177,8 +196,8 @@
  *  If an operation has already completed against the server, and is subsequently resumed, that operation will replay all of its callbacks from the start of the operation, but the request will not be re-sent to the server.
  *  If a long lived operation is cancelled or finishes completely it is no longer returned by these calls.
  */
-- (void)fetchAllLongLivedOperationIDsWithCompletionHandler:(void (^)(NSArray<CKOperationID> * _Nullable outstandingOperationIDs, NSError * _Nullable error))completionHandler API_AVAILABLE(macos(10.12), ios(9.3), tvos(9.2), watchos(3.0));
-- (void)fetchLongLivedOperationWithID:(CKOperationID)operationID completionHandler:(void (^)(CKOperation * _Nullable outstandingOperation, NSError * _Nullable error))completionHandler API_AVAILABLE(macos(10.12), ios(9.3), tvos(9.2), watchos(3.0));
+- (void)fetchAllLongLivedOperationIDsWithCompletionHandler:(void (^)(NSArray<CKOperationID> * _Nullable outstandingOperationIDs, NSError * _Nullable error))completionHandler API_AVAILABLE(macos(10.12), ios(9.3), tvos(9.2), watchos(3.0)) NS_REFINED_FOR_SWIFT_ASYNC(1);
+- (void)fetchLongLivedOperationWithID:(CKOperationID)operationID completionHandler:(void (^)(CKOperation * _Nullable_result outstandingOperation, NSError * _Nullable error))completionHandler API_AVAILABLE(macos(10.12), ios(9.3), tvos(9.2), watchos(3.0)) NS_REFINED_FOR_SWIFT_ASYNC(2);
 @end
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDatabase.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDatabase.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDatabase.h	2021-03-16 08:44:44.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDatabase.h	2021-06-02 07:34:11.000000000 -0400
@@ -6,6 +6,7 @@
 //
 
 #import <Foundation/Foundation.h>
+
 #import <CloudKit/CKSubscription.h>
 
 @class CKDatabaseOperation, CKRecord, CKRecordID, CKRecordZone, CKRecordZoneID, CKQuery;
@@ -36,31 +37,33 @@
 
 #pragma mark Record Convenience Methods
 /*! @c CKFetchRecordsOperation and @c CKModifyRecordsOperation are the more configurable, @c CKOperation -based alternatives to these methods */
-- (void)fetchRecordWithID:(CKRecordID *)recordID completionHandler:(void (^)(CKRecord * _Nullable record, NSError * _Nullable error))completionHandler;
+- (void)fetchRecordWithID:(CKRecordID *)recordID completionHandler:(void (^)(CKRecord * _Nullable record, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(record(for:));
 - (void)saveRecord:(CKRecord *)record completionHandler:(void (^)(CKRecord * _Nullable record, NSError * _Nullable error))completionHandler;
-- (void)deleteRecordWithID:(CKRecordID *)recordID completionHandler:(void (^)(CKRecordID * _Nullable recordID, NSError * _Nullable error))completionHandler;
+- (void)deleteRecordWithID:(CKRecordID *)recordID completionHandler:(void (^)(CKRecordID * _Nullable recordID, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(deleteRecord(withID:));
 
 #pragma mark Query Convenience Method
 /*! @discussion @c CKQueryOperation is the more configurable, @c CKOperation -based alternative to this method
  *  Queries can potentially return a large number of records, and the server will return those records in batches. This convenience API will only fetch the first batch of results (equivalent to using @c CKQueryOperationMaximumResults).
  *  If you would like to fetch all results, use @c CKQueryOperation and its @c CKQueryCursor instead.
  *  Queries invoked within a @c sharedCloudDatabase must specify a @c zoneID.  Cross-zone queries are not supported in a @c sharedCloudDatabase
+ *  Queries that do not specify a @c zoneID will perform a query across all zones in the database.
  */
-- (void)performQuery:(CKQuery *)query inZoneWithID:(nullable CKRecordZoneID *)zoneID completionHandler:(void (^)(NSArray<CKRecord *> * _Nullable results, NSError * _Nullable error))completionHandler;
+- (void)performQuery:(CKQuery *)query inZoneWithID:(nullable CKRecordZoneID *)zoneID completionHandler:(void (^)(NSArray<CKRecord *> * _Nullable results, NSError * _Nullable error))completionHandler
+CK_SWIFT_DEPRECATED("renamed to fetchRecords(matching:inZoneWith:desiredKeys:resultsLimit:completionHandler:)", macos(10.10, 12.0), ios(8.0, 15.0), tvos(9.0, 15.0), watchos(3.0, 8.0));
 
 #pragma mark Record Zone Convenience Methods
 /*! @c CKFetchRecordZonesOperation and @c CKModifyRecordZonesOperation are the more configurable, @c CKOperation -based alternatives to these methods */
-- (void)fetchAllRecordZonesWithCompletionHandler:(void (^)(NSArray<CKRecordZone *> * _Nullable zones, NSError * _Nullable error))completionHandler;
-- (void)fetchRecordZoneWithID:(CKRecordZoneID *)zoneID completionHandler:(void (^)(CKRecordZone * _Nullable zone, NSError * _Nullable error))completionHandler;
+- (void)fetchAllRecordZonesWithCompletionHandler:(void (^)(NSArray<CKRecordZone *> * _Nullable zones, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(allRecordZones());
+- (void)fetchRecordZoneWithID:(CKRecordZoneID *)zoneID completionHandler:(void (^)(CKRecordZone * _Nullable zone, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(recordZone(for:));
 - (void)saveRecordZone:(CKRecordZone *)zone completionHandler:(void (^)(CKRecordZone * _Nullable zone, NSError * _Nullable error))completionHandler;
-- (void)deleteRecordZoneWithID:(CKRecordZoneID *)zoneID completionHandler:(void (^)(CKRecordZoneID * _Nullable zoneID, NSError * _Nullable error))completionHandler;
+- (void)deleteRecordZoneWithID:(CKRecordZoneID *)zoneID completionHandler:(void (^)(CKRecordZoneID * _Nullable zoneID, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(deleteRecordZone(withID:));
 
 #pragma mark Subscription Convenience Methods
 /*! @c CKFetchSubscriptionsOperation and @c CKModifySubscriptionsOperation are the more configurable, @c CKOperation -based alternative to these methods */
-- (void)fetchSubscriptionWithID:(CKSubscriptionID)subscriptionID completionHandler:(void (^)(CKSubscription * _Nullable subscription, NSError * _Nullable error))completionHandler API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(6.0));
-- (void)fetchAllSubscriptionsWithCompletionHandler:(void (^)(NSArray<CKSubscription *> * _Nullable subscriptions, NSError * _Nullable error))completionHandler API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(6.0));
+- (void)fetchSubscriptionWithID:(CKSubscriptionID)subscriptionID completionHandler:(void (^)(CKSubscription * _Nullable subscription, NSError * _Nullable error))completionHandler API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(6.0)) NS_REFINED_FOR_SWIFT_ASYNC(2);
+- (void)fetchAllSubscriptionsWithCompletionHandler:(void (^)(NSArray<CKSubscription *> * _Nullable subscriptions, NSError * _Nullable error))completionHandler API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(6.0)) NS_SWIFT_ASYNC_NAME(allSubscriptions());
 - (void)saveSubscription:(CKSubscription *)subscription completionHandler:(void (^)(CKSubscription * _Nullable subscription, NSError * _Nullable error))completionHandler API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(6.0));
-- (void)deleteSubscriptionWithID:(CKSubscriptionID)subscriptionID completionHandler:(void (^)(NSString * _Nullable subscriptionID, NSError * _Nullable error))completionHandler API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(6.0));
+- (void)deleteSubscriptionWithID:(CKSubscriptionID)subscriptionID completionHandler:(void (^)(CKSubscriptionID _Nullable subscriptionID, NSError * _Nullable error))completionHandler API_AVAILABLE(macos(10.10), ios(8.0), tvos(9.0), watchos(6.0)) NS_REFINED_FOR_SWIFT_ASYNC(2);
 
 @end
 
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDefines.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDefines.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDefines.h	2021-03-16 08:41:05.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDefines.h	2021-06-02 12:47:13.000000000 -0400
@@ -29,4 +29,14 @@
 #endif
 #endif
 
+#ifndef CK_SWIFT_AVAILABILITY
+    #if defined(__swift__) && !defined(CK_BUILDING_CK)
+        #define CK_SWIFT_AVAILABILITY(...) API_AVAILABLE(__VA_ARGS__)
+        #define CK_SWIFT_DEPRECATED(...) API_DEPRECATED(__VA_ARGS__)
+    #else
+        #define CK_SWIFT_AVAILABILITY(...)
+        #define CK_SWIFT_DEPRECATED(...)
+    #endif
+#endif
+
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDiscoverAllUserIdentitiesOperation.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDiscoverAllUserIdentitiesOperation.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDiscoverAllUserIdentitiesOperation.h	2021-03-16 08:47:37.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDiscoverAllUserIdentitiesOperation.h	2021-06-02 12:47:12.000000000 -0400
@@ -6,6 +6,7 @@
 //
 
 #import <Foundation/Foundation.h>
+
 #import <CloudKit/CKOperation.h>
 
 @class CKUserIdentity;
@@ -35,7 +36,8 @@
  *  @discussion The @code -[NSOperation completionBlock] @endcode will also be called if both are set.
  *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
  */
-@property (nonatomic, copy, nullable) void (^discoverAllUserIdentitiesCompletionBlock)(NSError * _Nullable operationError);
+@property (nonatomic, copy, nullable) void (^discoverAllUserIdentitiesCompletionBlock)(NSError * _Nullable operationError)
+CK_SWIFT_DEPRECATED("Use discoverAllUserIdentitiesResultBlock instead", macos(10.12, 12.0), ios(10.0, 15.0), watchos(3.0, 8.0));
 
 @end
 
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDiscoverUserIdentitiesOperation.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDiscoverUserIdentitiesOperation.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDiscoverUserIdentitiesOperation.h	2021-03-16 08:47:36.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDiscoverUserIdentitiesOperation.h	2021-06-02 12:47:12.000000000 -0400
@@ -6,6 +6,7 @@
 //
 
 #import <Foundation/Foundation.h>
+
 #import <CloudKit/CKOperation.h>
 
 @class CKRecordID, CKUserIdentity, CKUserIdentityLookupInfo;
@@ -31,7 +32,8 @@
  *  @discussion The @code -[NSOperation completionBlock] @endcode will also be called if both are set.
  *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
  */
-@property (nonatomic, copy, nullable) void (^discoverUserIdentitiesCompletionBlock)(NSError * _Nullable operationError);
+@property (nonatomic, copy, nullable) void (^discoverUserIdentitiesCompletionBlock)(NSError * _Nullable operationError)
+CK_SWIFT_DEPRECATED("Use discoverUserIdentitiesResultBlock instead", macos(10.12, 12.0), ios(10.0, 15.0), tvos(10.0, 15.0), watchos(3.0, 8.0));
 
 @end
 
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKError.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKError.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKError.h	2021-03-16 05:20:12.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKError.h	2021-06-02 07:34:11.000000000 -0400
@@ -6,6 +6,7 @@
 //
 
 #import <Foundation/Foundation.h>
+
 #import <CloudKit/CKDefines.h>
 
 NS_ASSUME_NONNULL_BEGIN
@@ -23,6 +24,9 @@
 CK_EXTERN NSString * const CKRecordChangedErrorServerRecordKey API_AVAILABLE(macos(10.10), ios(8.0), watchos(3.0));
 CK_EXTERN NSString * const CKRecordChangedErrorClientRecordKey API_AVAILABLE(macos(10.10), ios(8.0), watchos(3.0));
 
+/* On error CKErrorZoneNotFound, the userInfo dictionary may contain a NSNumber instance that specifies a boolean value representing if the error is caused by the user having reset all encrypted data for their account */
+CK_EXTERN NSString * const CKErrorUserDidResetEncryptedDataKey API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+
 /*! On some errors, the userInfo dictionary may contain a NSNumber instance that specifies the period of time in seconds after which the client may retry the request. For example, this key will be on @c CKErrorServiceUnavailable, @c CKErrorRequestRateLimited, and other errors for which the recommended resolution is to retry after a delay.
  */
 CK_EXTERN NSString * const CKErrorRetryAfterKey API_AVAILABLE(macos(10.10), ios(8.0), watchos(3.0));
@@ -31,7 +35,10 @@
     /*! CloudKit.framework encountered an error.  This is a non-recoverable error. */
     CKErrorInternalError                  = 1,
     
-    /*! Some items failed, but the operation succeeded overall. Check CKPartialErrorsByItemIDKey in the userInfo dictionary for more details. */
+    /*! Some items failed, but the operation succeeded overall. Check CKPartialErrorsByItemIDKey in the userInfo dictionary for more details.
+     *  This error is only returned from CKOperation completion blocks, which are deprecated in swift.
+     *  It will not be returned from (swift-only) CKOperation result blocks, which are their replacements
+     */
     CKErrorPartialFailure                 = 2,
     
     /*! Network not available */
@@ -131,6 +138,9 @@
     
     /*! The file for this asset could not be accessed. It is likely your application does not have permission to open the file, or the file may be temporarily unavailable due to its data protection class. This operation can be retried after it is able to be opened in your process. */
     CKErrorAssetNotAvailable              API_AVAILABLE(macos(10.13), ios(11.3), tvos(11.3), watchos(4.3)) = 35,
+
+    /*! The current account is in a state that may need user intervention to recover from. The user should be directed to check the Settings app. Listen for CKAccountChangedNotifications to know when to re-check account status and retry. */
+    CKErrorAccountTemporarilyUnavailable  API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0)) = 36
 } API_AVAILABLE(macos(10.10), ios(8.0), watchos(3.0));
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchDatabaseChangesOperation.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchDatabaseChangesOperation.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchDatabaseChangesOperation.h	2021-03-16 05:18:24.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchDatabaseChangesOperation.h	2021-06-02 07:35:54.000000000 -0400
@@ -49,6 +49,13 @@
  */
 @property (nonatomic, copy, nullable) void (^recordZoneWithIDWasPurgedBlock)(CKRecordZoneID *zoneID) API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0));
 
+/*! @abstract If this block is set it will be called instead of @c recordZoneWithIDWasDeletedBlock if the user chose to reset all encrypted data for their account.
+ *
+ *  @discussion This is an indication that the user had to reset encrypted data during account recovery, so local cached data should be re-uploaded to the server to minimize data loss.
+ *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations
+ */
+@property (nonatomic, copy, nullable) void (^recordZoneWithIDWasDeletedDueToUserEncryptedDataResetBlock)(CKRecordZoneID *zoneID) API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+
 //! @discussion Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
 @property (nonatomic, copy, nullable) void (^changeTokenUpdatedBlock)(CKServerChangeToken * serverChangeToken);
 
@@ -59,7 +66,8 @@
  *  If @c moreComing is true then the server wasn't able to return all the changes in this response. Another @c CKFetchDatabaseChangesOperation operation should be run with the @c previousServerChangeToken token from this operation.
  *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations
  */
-@property (nonatomic, copy, nullable) void (^fetchDatabaseChangesCompletionBlock)(CKServerChangeToken * _Nullable serverChangeToken, BOOL moreComing, NSError * _Nullable operationError);
+@property (nonatomic, copy, nullable) void (^fetchDatabaseChangesCompletionBlock)(CKServerChangeToken * _Nullable serverChangeToken, BOOL moreComing, NSError * _Nullable operationError)
+CK_SWIFT_DEPRECATED("Use fetchDatabaseChangesResultBlock instead", macos(10.12, 12.0), ios(10.0, 15.0), tvos(10.0, 15.0), watchos(3.0, 8.0));
 
 @end
 
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordChangesOperation.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordChangesOperation.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordChangesOperation.h	2021-03-16 08:47:36.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordChangesOperation.h	2021-06-02 12:47:11.000000000 -0400
@@ -6,8 +6,8 @@
 //
 
 #import <CloudKit/CKDatabaseOperation.h>
-#import <CloudKit/CKServerChangeToken.h>
 #import <CloudKit/CKRecord.h>
+#import <CloudKit/CKServerChangeToken.h>
 
 NS_ASSUME_NONNULL_BEGIN
 
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordZoneChangesOperation.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordZoneChangesOperation.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordZoneChangesOperation.h	2021-03-16 08:47:37.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordZoneChangesOperation.h	2021-06-02 11:07:13.000000000 -0400
@@ -6,8 +6,8 @@
 //
 
 #import <CloudKit/CKDatabaseOperation.h>
-#import <CloudKit/CKServerChangeToken.h>
 #import <CloudKit/CKRecord.h>
+#import <CloudKit/CKServerChangeToken.h>
 
 @class CKFetchRecordZoneChangesConfiguration, CKFetchRecordZoneChangesOptions;
 
@@ -23,10 +23,10 @@
 @interface CKFetchRecordZoneChangesOperation : CKDatabaseOperation
 
 - (instancetype)init NS_DESIGNATED_INITIALIZER;
-- (instancetype)initWithRecordZoneIDs:(NSArray<CKRecordZoneID *> *)recordZoneIDs configurationsByRecordZoneID:(nullable NSDictionary<CKRecordZoneID *, CKFetchRecordZoneChangesConfiguration *> *)configurationsByRecordZoneID;
+- (instancetype)initWithRecordZoneIDs:(NSArray<CKRecordZoneID *> *)recordZoneIDs configurationsByRecordZoneID:(nullable NSDictionary<CKRecordZoneID *, CKFetchRecordZoneChangesConfiguration *> *)configurationsByRecordZoneID API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0));
 
 @property (nonatomic, copy, nullable) NSArray<CKRecordZoneID *> *recordZoneIDs;
-@property (nonatomic, copy, nullable) NSDictionary<CKRecordZoneID *, CKFetchRecordZoneChangesConfiguration *> *configurationsByRecordZoneID;
+@property (nonatomic, copy, nullable) NSDictionary<CKRecordZoneID *, CKFetchRecordZoneChangesConfiguration *> *configurationsByRecordZoneID API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0));
 
 /*! @abstract Determines if the opertaion should fetch all changes from the server before completing.
  *
@@ -38,8 +38,19 @@
  */
 @property (nonatomic, assign) BOOL fetchAllChanges;
 
-//! @discussion Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
-@property (nonatomic, copy, nullable) void (^recordChangedBlock)(CKRecord *record);
+/*! @discussion If the replacement callback @c recordWasChangedBlock is set, this callback block is ignored.
+ *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
+ */
+@property (nonatomic, copy, nullable) void (^recordChangedBlock)(CKRecord *record)
+
+    API_DEPRECATED("Use recordWasChangedBlock instead, which surfaces per-record errors", macos(10.12, 12.0), ios(10.0, 15.0), tvos(10.0, 15.0), watchos(3.0, 8.0));
+
+
+
+/*! @discussion If a record fails in post-processing (say, a network failure materializing a @c CKAsset record field), the per-record error will be passed here.
+ *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
+ */
+@property (nonatomic, copy, nullable) void (^recordWasChangedBlock)(CKRecordID *recordID, CKRecord * _Nullable record, NSError * _Nullable error) API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0)) NS_REFINED_FOR_SWIFT;
 
 //! @discussion Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
 @property (nonatomic, copy, nullable) void (^recordWithIDWasDeletedBlock)(CKRecordID *recordID, CKRecordType recordType);
@@ -53,14 +64,15 @@
  *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
  */
 @property (nonatomic, copy, nullable) void (^recordZoneChangeTokensUpdatedBlock)(CKRecordZoneID *recordZoneID, CKServerChangeToken * _Nullable serverChangeToken, NSData * _Nullable clientChangeTokenData);
-@property (nonatomic, copy, nullable) void (^recordZoneFetchCompletionBlock)(CKRecordZoneID *recordZoneID, CKServerChangeToken * _Nullable serverChangeToken, NSData * _Nullable clientChangeTokenData, BOOL moreComing, NSError * _Nullable recordZoneError);
+@property (nonatomic, copy, nullable) void (^recordZoneFetchCompletionBlock)(CKRecordZoneID *recordZoneID, CKServerChangeToken * _Nullable serverChangeToken, NSData * _Nullable clientChangeTokenData, BOOL moreComing, NSError * _Nullable recordZoneError) CK_SWIFT_DEPRECATED("Use recordZoneFetchResultBlock instead", macos(10.12, 12.0), ios(10.0, 15.0), tvos(10.0, 15.0), watchos(3.0, 8.0));
 
 /*! @abstract This block is called when the operation completes.
  *
  *  @discussion @c serverChangeToken-s previously returned via a @c recordZoneChangeTokensUpdatedBlock or @c recordZoneFetchCompletionBlock invocation, along with the record changes that preceded it, are valid even if there is a subsequent @c operationError
+ *  If the error is @c CKErrorPartialFailure, the error's userInfo dictionary contains a dictionary of recordIDs and zoneIDs to errors keyed off of @c CKPartialErrorsByItemIDKey.
  *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
  */
-@property (nonatomic, copy, nullable) void (^fetchRecordZoneChangesCompletionBlock)(NSError * _Nullable operationError);
+@property (nonatomic, copy, nullable) void (^fetchRecordZoneChangesCompletionBlock)(NSError * _Nullable operationError) CK_SWIFT_DEPRECATED("Use fetchRecordZoneChangesResultBlock instead", macos(10.12, 12.0), ios(10.0, 15.0), tvos(10.0, 15.0), watchos(3.0, 8.0));
 
 @end
 
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordZonesOperation.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordZonesOperation.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordZonesOperation.h	2021-03-16 08:47:35.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordZonesOperation.h	2021-06-02 12:47:11.000000000 -0400
@@ -21,13 +21,22 @@
 
 @property (nonatomic, copy, nullable) NSArray<CKRecordZoneID *> *recordZoneIDs;
 
+/*! @abstract Called on success or failure for each record zone.
+ *
+ * @discussion Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
+ */
+@property (nonatomic, copy, nullable) void (^perRecordZoneCompletionBlock)(CKRecordZoneID *zoneID, CKRecordZone * _Nullable recordZone, NSError * _Nullable error) API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0)) NS_REFINED_FOR_SWIFT;
+
+
 /*! @abstract This block is called when the operation completes.
  *
  *  @discussion The @code -[NSOperation completionBlock] @endcode will also be called if both are set.
  *  If the error is @c CKErrorPartialFailure, the error's userInfo dictionary contains a dictionary of zoneIDs to errors keyed off of @c CKPartialErrorsByItemIDKey.
+ *  @c recordZonesByZoneID and any @c CKPartialErrorsByItemIDKey errors are repeats of the data sent back in previous @c perRecordZoneCompletionBlock invocations
  *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations
  */
-@property (nonatomic, copy, nullable) void (^fetchRecordZonesCompletionBlock)(NSDictionary<CKRecordZoneID *, CKRecordZone *> * _Nullable recordZonesByZoneID, NSError * _Nullable operationError);
+@property (nonatomic, copy, nullable) void (^fetchRecordZonesCompletionBlock)(NSDictionary<CKRecordZoneID *, CKRecordZone *> * _Nullable recordZonesByZoneID, NSError * _Nullable operationError)
+CK_SWIFT_DEPRECATED("Use fetchRecordZonesResultBlock instead", macos(10.10, 12.0), ios(8.0, 15.0), tvos(9.0, 15.0), watchos(3.0, 8.0));
 
 @end
 
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordsOperation.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordsOperation.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordsOperation.h	2021-03-16 08:47:36.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordsOperation.h	2021-06-02 12:47:12.000000000 -0400
@@ -39,15 +39,19 @@
  *
  * @discussion Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
  */
-@property (nonatomic, copy, nullable) void (^perRecordCompletionBlock)(CKRecord * _Nullable record, CKRecordID * _Nullable recordID, NSError * _Nullable error);
+@property (nonatomic, copy, nullable) void (^perRecordCompletionBlock)(CKRecord * _Nullable record, CKRecordID * _Nullable recordID, NSError * _Nullable error)
+CK_SWIFT_DEPRECATED("Use perRecordResultBlock instead", macos(10.10, 12.0), ios(8.0, 15.0), tvos(9.0, 15.0), watchos(3.0, 8.0));
+
 
 /*! @abstract This block is called when the operation completes.
  *
  *  @discussion The @code -[NSOperation completionBlock] @endcode will also be called if both are set.
  *  If the error is @c CKErrorPartialFailure, the error's userInfo dictionary contains a dictionary of recordIDs to errors keyed off of @c CKPartialErrorsByItemIDKey.
+ *  @c recordsByRecordID and any @c CKPartialErrorsByItemIDKey errors are repeats of the data sent back in previous @c perRecordCompletionBlock invocations
  *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
  */
-@property (nonatomic, copy, nullable) void (^fetchRecordsCompletionBlock)(NSDictionary<CKRecordID * , CKRecord *> * _Nullable recordsByRecordID, NSError * _Nullable operationError);
+@property (nonatomic, copy, nullable) void (^fetchRecordsCompletionBlock)(NSDictionary<CKRecordID * , CKRecord *> * _Nullable recordsByRecordID, NSError * _Nullable operationError)
+CK_SWIFT_DEPRECATED("Use fetchRecordsResultBlock instead", macos(10.10, 12.0), ios(8.0, 15.0), tvos(9.0, 15.0), watchos(3.0, 8.0));
 
 @end
 
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchShareMetadataOperation.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchShareMetadataOperation.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchShareMetadataOperation.h	2021-03-16 08:47:37.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchShareMetadataOperation.h	2021-06-02 12:47:12.000000000 -0400
@@ -45,14 +45,17 @@
  *
  *  @discussion Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
  */
-@property (nonatomic, copy, nullable) void (^perShareMetadataBlock)(NSURL *shareURL, CKShareMetadata * _Nullable shareMetadata, NSError * _Nullable error);
+@property (nonatomic, copy, nullable) void (^perShareMetadataBlock)(NSURL *shareURL, CKShareMetadata * _Nullable shareMetadata, NSError * _Nullable error)
+CK_SWIFT_DEPRECATED("Use perShareMetadataResultBlock instead", macos(10.12, 12.0), ios(10.0, 15.0), tvos(10.0, 15.0), watchos(3.0, 8.0));
 
 /*! @abstract This block is called when the operation completes.
  *
  *  @discussion The @code -[NSOperation completionBlock] @endcode will also be called if both are set.
+ *  If the error is @c CKErrorPartialFailure, the error's userInfo dictionary contains a dictionary of shareURLs to errors keyed off of @c CKPartialErrorsByItemIDKey.  These errors are repeats of those sent back in previous @c perShareMetadataBlock invocations
  *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
  */
-@property (nonatomic, copy, nullable) void (^fetchShareMetadataCompletionBlock)(NSError * _Nullable operationError);
+@property (nonatomic, copy, nullable) void (^fetchShareMetadataCompletionBlock)(NSError * _Nullable operationError)
+CK_SWIFT_DEPRECATED("Use fetchShareMetadataResultBlock instead", macos(10.12, 12.0), ios(10.0, 15.0), tvos(10.0, 15.0), watchos(3.0, 8.0));
 
 @end
 
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchShareParticipantsOperation.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchShareParticipantsOperation.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchShareParticipantsOperation.h	2021-03-16 08:47:36.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchShareParticipantsOperation.h	2021-06-02 12:47:12.000000000 -0400
@@ -21,17 +21,28 @@
 
 /*! @abstract Called once for each share participant created from a submitted user identity lookup info.
  *
+ *  @discussion If the replacement callback @c perShareParticipantCompletionBlock is set, this callback block is ignored.
+ *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
+ */
+@property (nonatomic, copy, nullable) void (^shareParticipantFetchedBlock)(CKShareParticipant *participant)
+
+    API_DEPRECATED("Use perShareParticipantCompletionBlock instead, which surfaces per-share-participant errors", macos(10.12, 12.0), ios(10.0, 15.0), tvos(10.0, 15.0), watchos(3.0, 8.0));
+
+
+/*! @abstract Called once for each lookup info.
+ *
  *  @discussion Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
  */
-@property (nonatomic, copy, nullable) void (^shareParticipantFetchedBlock)(CKShareParticipant *participant);
+@property (nonatomic, copy, nullable) void (^perShareParticipantCompletionBlock)(CKUserIdentityLookupInfo *lookupInfo, CKShareParticipant * _Nullable participant, NSError * _Nullable error) NS_REFINED_FOR_SWIFT;
 
 /*! @abstract This block is called when the operation completes.
  *
  *  @discussion The @code -[NSOperation completionBlock] @endcode will also be called if both are set.
- *  If the error is @c CKErrorPartialFailure, the error's userInfo dictionary contains a dictionary of lookup infos to errors keyed off of @c CKPartialErrorsByItemIDKey.
+ *  If the error is @c CKErrorPartialFailure, the error's userInfo dictionary contains a dictionary of lookup infos to errors keyed off of @c CKPartialErrorsByItemIDKey.  These errors are repeats of those sent back in previous @c perShareParticipantCompletionBlock invocations
  *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
  */
-@property (nonatomic, copy, nullable) void (^fetchShareParticipantsCompletionBlock)(NSError * _Nullable operationError);
+@property (nonatomic, copy, nullable) void (^fetchShareParticipantsCompletionBlock)(NSError * _Nullable operationError)
+CK_SWIFT_DEPRECATED("Use fetchShareParticipantsResultBlock instead", macos(10.12, 12.0), ios(10.0, 15.0), tvos(10.0, 15.0), watchos(3.0, 8.0));
 
 @end
 
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchSubscriptionsOperation.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchSubscriptionsOperation.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchSubscriptionsOperation.h	2021-03-16 08:47:35.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchSubscriptionsOperation.h	2021-06-02 12:47:11.000000000 -0400
@@ -21,13 +21,21 @@
 
 @property (nonatomic, copy, nullable) NSArray<CKSubscriptionID> *subscriptionIDs;
 
+/*! @abstract Called on success or failure for each subscriptionID.
+ *
+ * @discussion Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
+ */
+@property (nonatomic, copy, nullable) void (^perSubscriptionCompletionBlock)(CKSubscriptionID subscriptionID, CKSubscription * _Nullable subscription, NSError * _Nullable error) API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0)) NS_REFINED_FOR_SWIFT;
+
 /*! @abstract This block is called when the operation completes.
  *
  *  @discussion The @code -[NSOperation completionBlock] @endcode will also be called if both are set.
  *  If the error is @c CKErrorPartialFailure, the error's userInfo dictionary contains a dictionary of subscriptionID to errors keyed off of @c CKPartialErrorsByItemIDKey.
+ *  @c subscriptionsBySubscriptionID and any @c CKPartialErrorsByItemIDKey errors are repeats of the data sent back in previous @c perSubscriptionCompletionBlock invocations
  *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
  */
-@property (nonatomic, copy, nullable) void (^fetchSubscriptionCompletionBlock)(NSDictionary<CKSubscriptionID, CKSubscription *> * _Nullable subscriptionsBySubscriptionID, NSError * _Nullable operationError);
+@property (nonatomic, copy, nullable) void (^fetchSubscriptionCompletionBlock)(NSDictionary<CKSubscriptionID, CKSubscription *> * _Nullable subscriptionsBySubscriptionID, NSError * _Nullable operationError)
+CK_SWIFT_DEPRECATED("Use fetchSubscriptionsResultBlock instead", macos(10.10, 12.0), ios(8.0, 15.0), tvos(9.0, 15.0), watchos(6.0, 8.0));
 
 @end
 
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchWebAuthTokenOperation.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchWebAuthTokenOperation.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchWebAuthTokenOperation.h	2021-03-16 08:47:35.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchWebAuthTokenOperation.h	2021-06-02 12:47:10.000000000 -0400
@@ -22,8 +22,12 @@
 /*! APIToken is expected to be set before you begin this operation. */
 @property (nonatomic, copy, nullable) NSString *APIToken;
 
-//! @discussion Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
-@property (nonatomic, copy, nullable) void (^fetchWebAuthTokenCompletionBlock)(NSString * _Nullable webAuthToken, NSError * _Nullable operationError);
+/*! @abstract This block is called when the operation completes.
+ *
+ *  @discussion The @code -[NSOperation completionBlock] @endcode will also be called if both are set.
+ *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
+ */
+@property (nonatomic, copy, nullable) void (^fetchWebAuthTokenCompletionBlock)(NSString * _Nullable webAuthToken, NSError * _Nullable operationError) CK_SWIFT_DEPRECATED("Use fetchWebAuthTokenResultBlock instead", macos(10.11, 12.0), ios(9.2, 15.0), tvos(9.1, 15.0), watchos(3.0, 8.0));;
 
 @end
 
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKMarkNotificationsReadOperation.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKMarkNotificationsReadOperation.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKMarkNotificationsReadOperation.h	2021-03-16 08:47:37.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKMarkNotificationsReadOperation.h	2021-06-02 12:47:12.000000000 -0400
@@ -6,6 +6,7 @@
 //
 
 #import <Foundation/Foundation.h>
+
 #import <CloudKit/CKOperation.h>
 
 @class CKNotificationID;
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKModifyRecordZonesOperation.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKModifyRecordZonesOperation.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKModifyRecordZonesOperation.h	2021-03-16 08:47:37.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKModifyRecordZonesOperation.h	2021-06-02 12:47:12.000000000 -0400
@@ -20,14 +20,27 @@
 @property (nonatomic, copy, nullable) NSArray<CKRecordZone *> *recordZonesToSave;
 @property (nonatomic, copy, nullable) NSArray<CKRecordZoneID *> *recordZoneIDsToDelete;
 
+/*! @abstract Called on success or failure of a record zone save
+ *
+ *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
+ */
+@property (nonatomic, copy, nullable) void (^perRecordZoneSaveBlock)(CKRecordZoneID *recordZoneID, CKRecordZone * _Nullable recordZone, NSError * _Nullable error) API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0)) NS_REFINED_FOR_SWIFT;
+
+/*! @abstract Called on success or failure of a record zone deletion
+ *
+ *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
+ */
+@property (nonatomic, copy, nullable) void (^perRecordZoneDeleteBlock)(CKRecordZoneID *recordZoneID, NSError * _Nullable error) API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0)) NS_REFINED_FOR_SWIFT;
+
 /*! @abstract This block is called when the operation completes.
  *
  *  @discussion The @code -[NSOperation completionBlock] @endcode will also be called if both are set.
  *  If the error is @c CKErrorPartialFailure, the error's userInfo dictionary contains a dictionary of recordZoneIDs to errors keyed off of @c CKPartialErrorsByItemIDKey.
- *  This call happens as soon as the server has seen all record changes, and may be invoked while the server is processing the side effects of those changes.
+ *  @c savedRecordZones, @c deletedRecordZoneIDs and any @c CKPartialErrorsByItemIDKey errors are repeats of the data sent back in previous @c perRecordZoneSaveBlock and @c perRecordZoneDeleteBlock invocations
  *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
  */
-@property (nonatomic, copy, nullable) void (^modifyRecordZonesCompletionBlock)(NSArray<CKRecordZone *> * _Nullable savedRecordZones, NSArray<CKRecordZoneID *> * _Nullable deletedRecordZoneIDs, NSError * _Nullable operationError);
+@property (nonatomic, copy, nullable) void (^modifyRecordZonesCompletionBlock)(NSArray<CKRecordZone *> * _Nullable savedRecordZones, NSArray<CKRecordZoneID *> * _Nullable deletedRecordZoneIDs, NSError * _Nullable operationError)
+CK_SWIFT_DEPRECATED("Use modifyRecordZonesResultBlock instead", macos(10.10, 12.0), ios(8.0, 15.0), tvos(9.0, 15.0), watchos(3.0, 8.0));
 
 @end
 
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKModifyRecordsOperation.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKModifyRecordsOperation.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKModifyRecordsOperation.h	2021-03-16 13:58:44.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKModifyRecordsOperation.h	2021-06-02 05:35:26.000000000 -0400
@@ -19,19 +19,23 @@
  *
  *  @constant CKRecordSaveChangedKeys
  *  @discussion Locally-edited keys are written to the server.
- *  Any unseen changes on the server will be overwritten to the locally-edited value.
+ *  Any previously committed change to the server, for example by other devices, will be overwritten by the locally changed value.
+ *  This policy does not compare the record change tag and therefore will never return @c CKErrorServerRecordChanged
  *
  *  @constant CKRecordSaveAllKeys
  *  @discussion All local keys are written to the server.
- *  Any unseen changes on the server will be overwritten to the local values.  Keys present only on the server remain unchanged. There are two common ways in which a server record will contain keys not present locally:
+ *  Any previously committed change to the server, for example by other devices, will be overwritten by the local value.
+ *  Keys present only on the server remain unchanged.
+ *  There are two common ways in which a server record will contain keys not present locally:
  *  1 - Since you've fetched this record, another client has added a new key to the record.
  *  2 - The presence of @c desiredKeys on the fetch / query that returned this record meant that only a portion of the record's keys were downloaded.
+ *  This policy does not compare the record change tag and therefore will never return @c CKErrorServerRecordChanged.
  */
 
 typedef NS_ENUM(NSInteger, CKRecordSavePolicy) {
     CKRecordSaveIfServerRecordUnchanged = 0,
-    CKRecordSaveChangedKeys             = 1,
-    CKRecordSaveAllKeys                 = 2,
+    CKRecordSaveChangedKeys             = 1, /** Does not compare record change tags */
+    CKRecordSaveAllKeys                 = 2, /** Does not compare record change tags */
 } API_AVAILABLE(macos(10.10), ios(8.0), watchos(3.0));
 
 API_AVAILABLE(macos(10.10), ios(8.0), watchos(3.0))
@@ -66,20 +70,42 @@
  *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
  */
 @property (nonatomic, copy, nullable) void (^perRecordProgressBlock)(CKRecord *record, double progress);
+
 /*! @abstract Called on success or failure for each record.
  *
- *  @discussion Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
+ *  @discussion Will not be invoked if @c perRecordSaveBlock is set.
+ *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
+ */
+@property (nonatomic, copy, nullable) void (^perRecordCompletionBlock)(CKRecord *record, NSError * _Nullable error)
+
+    API_DEPRECATED_WITH_REPLACEMENT("perRecordSaveBlock", macos(10.10, 12.0), ios(8.0, 15.0), tvos(9.0, 15.0), watchos(3.0, 8.0));
+
+
+
+/*! @abstract Called on success or failure of a record save
+ *
+ *  @discussion Following a successful record save, this callback will be invoked with a nonnull @c record, and a nil @c error.
+ *  Following a save failure due to a per-item error (@c CKErrorServerRecordChanged, for example), this callback will be invoked with a nil @c record, and a nonnull @c error
+ *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
+ */
+@property (nonatomic, copy, nullable) void (^perRecordSaveBlock)(CKRecordID *recordID, CKRecord * _Nullable record, NSError * _Nullable error) API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0)) NS_REFINED_FOR_SWIFT;
+
+/*! @abstract Called on success or failure of a record deletion
+ *
+ *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
  */
-@property (nonatomic, copy, nullable) void (^perRecordCompletionBlock)(CKRecord *record, NSError * _Nullable error);
+@property (nonatomic, copy, nullable) void (^perRecordDeleteBlock)(CKRecordID *recordID, NSError * _Nullable error) API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0)) NS_REFINED_FOR_SWIFT;
 
 /*! @abstract This block is called when the operation completes.
  *
  *  @discussion The @code -[NSOperation completionBlock] @endcode will also be called if both are set.
  *  If the error is @c CKErrorPartialFailure, the error's userInfo dictionary contains a dictionary of recordIDs to errors keyed off of @c CKPartialErrorsByItemIDKey.
+ *  @c savedRecords, @c deletedRecordIDs and any @c CKPartialErrorsByItemIDKey errors are repeats of the data sent back in previous @c perRecordSaveBlock and @c perRecordDeleteBlock invocations
  *  This call happens as soon as the server has seen all record changes, and may be invoked while the server is processing the side effects of those changes.
  *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
  */
-@property (nonatomic, copy, nullable) void (^modifyRecordsCompletionBlock)(NSArray<CKRecord *> * _Nullable savedRecords, NSArray<CKRecordID *> * _Nullable deletedRecordIDs, NSError * _Nullable operationError);
+@property (nonatomic, copy, nullable) void (^modifyRecordsCompletionBlock)(NSArray<CKRecord *> * _Nullable savedRecords, NSArray<CKRecordID *> * _Nullable deletedRecordIDs, NSError * _Nullable operationError)
+CK_SWIFT_DEPRECATED("Use modifyRecordsResultBlock instead", macos(10.10, 12.0), ios(8.0, 15.0), tvos(9.0, 15.0), watchos(3.0, 8.0));
 
 @end
 
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKModifySubscriptionsOperation.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKModifySubscriptionsOperation.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKModifySubscriptionsOperation.h	2021-03-16 08:47:35.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKModifySubscriptionsOperation.h	2021-06-02 12:47:10.000000000 -0400
@@ -19,10 +19,23 @@
 @property (nonatomic, copy, nullable) NSArray<CKSubscription *> *subscriptionsToSave;
 @property (nonatomic, copy, nullable) NSArray<CKSubscriptionID> *subscriptionIDsToDelete;
 
+/*! @abstract Called on success or failure of a subscription save
+ *
+ *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
+ */
+@property (nonatomic, copy, nullable) void (^perSubscriptionSaveBlock)(CKSubscriptionID subscriptionID, CKSubscription * _Nullable subscription, NSError * _Nullable error) API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0)) NS_REFINED_FOR_SWIFT;
+
+/*! @abstract Called on success or failure of a subscription deletion
+ *
+ *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
+ */
+@property (nonatomic, copy, nullable) void (^perSubscriptionDeleteBlock)(CKSubscriptionID subscriptionID, NSError * _Nullable error) API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0)) NS_REFINED_FOR_SWIFT;
+
 /*! @abstract This block is called when the operation completes.
  *
  *  @discussion The @code -[NSOperation completionBlock] @endcode will also be called if both are set.
  *  If the error is @c CKErrorPartialFailure, the error's userInfo dictionary contains a dictionary of subscriptionIDs to errors keyed off of @c CKPartialErrorsByItemIDKey.
+ *  @c savedSubscriptions, @c deletedSubscriptionIDs and any @c CKPartialErrorsByItemIDKey errors are repeats of the data sent back in previous @c perSubscriptionSaveBlock and @c perSubscriptionDeleteBlock invocations
  *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
  */
 @property (nonatomic, copy, nullable) void (^modifySubscriptionsCompletionBlock)(NSArray<CKSubscription *> * _Nullable savedSubscriptions, NSArray<CKSubscriptionID> * _Nullable deletedSubscriptionIDs, NSError * _Nullable operationError);
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKNotification.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKNotification.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKNotification.h	2021-03-16 13:58:42.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKNotification.h	2021-06-02 11:07:11.000000000 -0400
@@ -7,8 +7,9 @@
 //
 
 #import <Foundation/Foundation.h>
-#import <CloudKit/CKRecord.h>
+
 #import <CloudKit/CKDatabase.h>
+#import <CloudKit/CKRecord.h>
 
 @class CKRecordID, CKRecordZoneID;
 
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKOperation.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKOperation.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKOperation.h	2021-03-16 05:20:12.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKOperation.h	2021-06-02 07:34:10.000000000 -0400
@@ -6,6 +6,7 @@
 //
 
 #import <Foundation/Foundation.h>
+
 #import <CloudKit/CKDefines.h>
 
 @class CKContainer, CKOperationConfiguration, CKOperationGroup;
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKOperationGroup.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKOperationGroup.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKOperationGroup.h	2021-03-16 09:54:41.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKOperationGroup.h	2021-06-02 12:44:13.000000000 -0400
@@ -6,6 +6,7 @@
 //
 
 #import <Foundation/Foundation.h>
+
 #import <CloudKit/CKDefines.h>
 
 @class CKOperationConfiguration;
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKQuery.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKQuery.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKQuery.h	2021-03-16 08:47:36.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKQuery.h	2021-06-02 12:47:12.000000000 -0400
@@ -6,6 +6,7 @@
 //
 
 #import <Foundation/Foundation.h>
+
 #import <CloudKit/CKRecord.h>
 
 NS_ASSUME_NONNULL_BEGIN
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKQueryOperation.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKQueryOperation.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKQueryOperation.h	2021-03-16 08:47:36.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKQueryOperation.h	2021-06-02 07:34:11.000000000 -0400
@@ -38,6 +38,7 @@
 /*! @abstract Indicates which record zone to query.
  *
  *  @discussion For query operations constructed using a cursor, this property is ignored and instead will be evaluated in the record zone in which the cursor was originally created.
+ *  Queries that do not specify a @c zoneID will perform a query across all zones in the database.
  */
 @property (nonatomic, copy, nullable) CKRecordZoneID *zoneID;
 
@@ -59,16 +60,31 @@
 /*! @abstract This block will be called once for every record that is returned as a result of the query.
  *
  *  @discussion The callbacks will happen in the order that the results were sorted in.
+ *  If the replacement callback @c recordMatchedBlock is set, this callback block is ignored.
  *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
  */
-@property (nonatomic, copy, nullable) void (^recordFetchedBlock)(CKRecord *record);
+@property (nonatomic, copy, nullable) void (^recordFetchedBlock)(CKRecord *record)
+
+    API_DEPRECATED("Use recordMatchedBlock instead, which surfaces per-record errors", macos(10.10, 12.0), ios(8.0, 15.0), tvos(9.0, 15.0), watchos(3.0, 8.0));
+
+
+
+/*! @abstract This block will be called once for every record that is returned as a result of the query.
+ *
+ *  @discussion The callbacks will happen in the order that the results were sorted in.  If a record fails in post-processing (say, a network failure materializing a @c CKAsset record field), the per-record error will be passed here.
+ *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
+ */
+@property (nonatomic, copy, nullable) void (^recordMatchedBlock)(CKRecordID *recordID, CKRecord * _Nullable record, NSError * _Nullable error) API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0)) NS_REFINED_FOR_SWIFT;
+
 
 /*! @abstract This block is called when the operation completes.
  *
  *  @discussion The @code -[NSOperation completionBlock] @endcode will also be called if both are set.
+ *  If the error is @c CKErrorPartialFailure, the error's userInfo dictionary contains a dictionary of recordIDs to errors keyed off of @c CKPartialErrorsByItemIDKey.  These errors are repeats of those sent back in previous @c recordMatchedBlock invocations
  *  Each @c CKOperation instance has a private serial queue. This queue is used for all callback block invocations.
  */
-@property (nonatomic, copy, nullable) void (^queryCompletionBlock)(CKQueryCursor * _Nullable cursor, NSError * _Nullable operationError);
+@property (nonatomic, copy, nullable) void (^queryCompletionBlock)(CKQueryCursor * _Nullable cursor, NSError * _Nullable operationError)
+CK_SWIFT_DEPRECATED("Use queryResultBlock instead", macos(10.10, 12.0), ios(8.0, 15.0), tvos(9.0, 15.0), watchos(3.0, 8.0));
 
 @end
 
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKRecord.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKRecord.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKRecord.h	2021-03-16 09:54:40.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKRecord.h	2021-06-02 12:47:10.000000000 -0400
@@ -5,11 +5,12 @@
 //  Copyright (c) 2014 Apple Inc. All rights reserved.
 //
 
-#import <Foundation/Foundation.h>
 #import <CoreLocation/CLLocation.h>
+#import <Foundation/Foundation.h>
+
 #import <CloudKit/CKAsset.h>
-#import <CloudKit/CKReference.h>
 #import <CloudKit/CKDefines.h>
+#import <CloudKit/CKReference.h>
 
 @class CKRecordID, CKRecordZoneID;
 
@@ -186,6 +187,13 @@
 
 API_AVAILABLE(macos(10.11), ios(9.0), watchos(3.0))
 @interface CKRecord(CKRecordKeyValueSettingConformance) <CKRecordKeyValueSetting>
+
+/*! Any values set here will be locally encrypted before being saved to the server and locally decrypted when fetched from the server. Encryption and decryption is handled by the CloudKit framework.
+ * Key material necessary for decryption are available to the owner of the record, as well as any users that can access this record via a CKShare.
+ * All CKRecordValue types can be set here except CKAsset and CKReference.
+ */
+@property (nonatomic, readonly, copy) id<CKRecordKeyValueSetting> encryptedValues API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+                                                                                                     
 @end
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKRecordZone.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKRecordZone.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKRecordZone.h	2021-03-16 08:47:35.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKRecordZone.h	2021-06-02 12:47:11.000000000 -0400
@@ -6,9 +6,10 @@
 //
 
 #import <Foundation/Foundation.h>
+
 #import <CloudKit/CKDefines.h>
 
-@class CKRecordZoneID;
+@class CKRecordZoneID, CKReference;
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -19,6 +20,8 @@
     CKRecordZoneCapabilityAtomic         = 1 << 1,
     /*! Records in this zone can be shared */
     CKRecordZoneCapabilitySharing        API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0)) = 1 << 2,
+    /*! This zone supports a single CKShare record that shares all records in the zone */
+    CKRecordZoneCapabilityZoneWideSharing API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0)) = 1 << 3,
 } API_AVAILABLE(macos(10.10), ios(8.0), watchos(3.0));
 
 CK_EXTERN NSString * const CKRecordZoneDefaultName API_AVAILABLE(macos(10.10), ios(8.0), watchos(3.0));
@@ -38,6 +41,16 @@
 /*! Capabilities on locally-created record zones are not valid until the record zone is saved. Capabilities on record zones fetched from the server are valid. */
 @property (nonatomic, readonly, assign) CKRecordZoneCapabilities capabilities;
 
+/*! @discussion The share property on a record zone will only be set on zones fetched from the server and only if a
+ * corresponding zone-wide share record for the zone exists on the server.
+ *
+ *  You can create a zone-wide share for a zone using @code -[CKShare initWithRecordZoneID:] @endcode.
+ *
+ *  Zone-wide sharing is only supported in zones with the @c CKRecordZoneCapabilityZoneWideSharing sharing capability.
+ *  You cannot share a zone if it already contains shared records.
+ */
+@property (nonatomic, readonly, copy, nullable) CKReference *share API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+
 @end
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKShare.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKShare.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKShare.h	2021-03-16 08:47:35.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKShare.h	2021-06-02 12:44:13.000000000 -0400
@@ -6,6 +6,7 @@
 //
 
 #import <Foundation/Foundation.h>
+
 #import <CloudKit/CKRecord.h>
 #import <CloudKit/CKShareParticipant.h>
 
@@ -13,6 +14,11 @@
 
 CK_EXTERN CKRecordType const CKRecordTypeShare API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0), watchos(3.0));
 
+/*! A zone-wide CKShare always uses the record name @c CKRecordNameZoneWideShare.
+ *  You can use this to fetch the @c CKShare record for the zone with a @c CKFetchRecordsOperation.
+ */
+CK_EXTERN NSString * const CKRecordNameZoneWideShare API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+
 /*! Predefined keys in the @c CKRecordTypeShare schema.  They're used by the out of process UI flow to send a share, and as part of the share acceptance flow.  These are optional */
 
 /*! Value is a string.  Example for a recipe sharing app: "Pot Roast" */
@@ -37,6 +43,18 @@
 - (instancetype)initWithRootRecord:(CKRecord *)rootRecord;
 - (instancetype)initWithRootRecord:(CKRecord *)rootRecord shareID:(CKRecordID *)shareID NS_DESIGNATED_INITIALIZER;
 
+/*! Creates a zone-wide @c CKShare.  A zone-wide @c CKShare can only exist in a zone with sharing capability @c CKRecordZoneCapabilityZoneWideSharing.
+ * Only one such share can exist in a zone at a time.
+ *
+ * All records in this zone will appear in a participant's @c CKFetchRecordZoneChangesOperation results in the shared database after the
+ * share has been accepted by the participant.
+ *
+ * Since these shares do not have an associated root record, @c shouldFetchRootRecord and @c rootRecordDesiredKeys are always ignored when
+ * running a @c CKFetchShareMetadataOperation on a zone-wide share URL. Additionally, @c rootRecordID on the resulting @c CKShareMetadata is
+ * always absent.
+ */
+- (instancetype)initWithRecordZoneID:(CKRecordZoneID *)recordZoneID NS_DESIGNATED_INITIALIZER API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
+
 - (instancetype)initWithCoder:(NSCoder *)aDecoder NS_DESIGNATED_INITIALIZER;
 
 /*! @abstract Defines what permission a user has when not explicitly added to the share.
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKShareMetadata.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKShareMetadata.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKShareMetadata.h	2021-03-16 08:47:36.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKShareMetadata.h	2021-06-02 12:47:11.000000000 -0400
@@ -16,11 +16,10 @@
 
 @property (nonatomic, readonly, copy) NSString *containerIdentifier;
 @property (nonatomic, readonly, copy) CKShare *share;
-@property (nonatomic, readonly, copy) CKRecordID *rootRecordID;
+@property (nonatomic, readonly, copy, nullable) CKRecordID *hierarchicalRootRecordID API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
 
 /*! These properties reflect the participant properties of the user invoking CKFetchShareMetadataOperation */
 @property (nonatomic, readonly, assign) CKShareParticipantRole participantRole API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0), watchos(5.0));
-@property (nonatomic, readonly, assign) CKShareParticipantType participantType API_DEPRECATED_WITH_REPLACEMENT("participantRole", macos(10.12, 10.14), ios(10.0, 12.0), tvos(10.0, 12.0), watchos(3.0, 5.0));
 @property (nonatomic, readonly, assign) CKShareParticipantAcceptanceStatus participantStatus;
 @property (nonatomic, readonly, assign) CKShareParticipantPermission participantPermission;
 
@@ -29,6 +28,9 @@
 /*! This is only present if the share metadata was returned from a CKFetchShareMetadataOperation with shouldFetchRootRecord set to YES */  
 @property (nonatomic, readonly, copy, nullable) CKRecord *rootRecord;
 
+@property (nonatomic, readonly, assign) CKShareParticipantType participantType API_DEPRECATED_WITH_REPLACEMENT("participantRole", macos(10.12, 10.14), ios(10.0, 12.0), tvos(10.0, 12.0), watchos(3.0, 5.0));
+@property (nonatomic, readonly, copy) CKRecordID *rootRecordID API_DEPRECATED_WITH_REPLACEMENT("hierarchicalRootRecordID", macos(10.12, API_TO_BE_DEPRECATED), ios(10.0, API_TO_BE_DEPRECATED), tvos(10.0, API_TO_BE_DEPRECATED), watchos(3.0, API_TO_BE_DEPRECATED));
+
 @end
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKSubscription.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKSubscription.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKSubscription.h	2021-03-16 13:58:43.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKSubscription.h	2021-06-02 05:35:26.000000000 -0400
@@ -6,6 +6,7 @@
 //
 
 #import <Foundation/Foundation.h>
+
 #import <CloudKit/CKDefines.h>
 #import <CloudKit/CKRecord.h>
 
@@ -65,7 +66,9 @@
 /*! A predicate that determines when the subscription fires. */
 @property (nonatomic, readonly, copy) NSPredicate *predicate;
 
-/*! Optional property.  If set, a query subscription is scoped to only record changes in the indicated zone. */
+/*! Optional property.  If set, a query subscription is scoped to only record changes in the indicated zone.
+ *  Query Subscriptions that do not specify a @c zoneID are scoped to record changes across all zones in the database.
+ */
 @property (nonatomic, copy, nullable) CKRecordZoneID *zoneID;
 
 /*! @abstract Options flags describing the firing behavior subscription.
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CloudKit.apinotes /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CloudKit.apinotes
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CloudKit.apinotes	2021-03-16 02:01:24.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CloudKit.apinotes	2021-06-01 22:42:22.000000000 -0400
@@ -1,20 +1,32 @@
 ---
 Name: CloudKit
 Classes:
+- Name: CKContainer
+  Methods:
+  - Selector: "fetchAllLongLivedOperationIDsWithCompletionHandler:"
+    MethodKind: Instance
+    SwiftPrivate: true
+  - Selector: "fetchLongLivedOperationWithID:completionHandler:"
+    MethodKind: Instance
+    SwiftPrivate: true
+    
 - Name: CKDatabase
   Methods:
+  # Records
   - Selector: 'fetchRecordWithID:completionHandler:'
     MethodKind: Instance
     SwiftName: 'fetch(withRecordID:completionHandler:)'
   - Selector: 'deleteRecordWithID:completionHandler:'
     MethodKind: Instance
     SwiftName: 'delete(withRecordID:completionHandler:)'
+  # Record Zones
   - Selector: 'fetchRecordZoneWithID:completionHandler:'
     MethodKind: Instance
     SwiftName: 'fetch(withRecordZoneID:completionHandler:)'
   - Selector: 'deleteRecordZoneWithID:completionHandler:'
     MethodKind: Instance
     SwiftName: 'delete(withRecordZoneID:completionHandler:)'
+  # Subscriptions
   - Selector: 'fetchSubscriptionWithID:completionHandler:'
     MethodKind: Instance
     SwiftPrivate: true
@@ -23,6 +35,16 @@
     MethodKind: Instance
     SwiftPrivate: true
     SwiftName: '__delete(withSubscriptionID:completionHandler:)'
+
+- Name: CKDatabaseSubscription
+  Methods:
+  - Selector: "initWithSubscriptionID:"
+    MethodKind: Instance
+    SwiftPrivate: true
+  Properties:
+  - Name: recordType
+    SwiftPrivate: true
+
 - Name: CKFetchRecordsOperation
   Methods:
   - Selector: 'fetchCurrentUserRecordOperation'
@@ -31,11 +53,40 @@
   Properties:
   - Name: desiredKeys
     SwiftPrivate: true
+    
+- Name: CKFetchRecordZoneChangesConfiguration
+  SwiftName: CKFetchRecordZoneChangesOperation.ZoneConfiguration
+  Properties:
+  - Name: desiredKeys
+    SwiftPrivate: true
+
+- Name: CKFetchRecordZoneChangesOperation
+  Methods:
+  - Selector: "initWithRecordZoneIDs:configurationsByRecordZoneID:"
+    MethodKind: Instance
+    Availability: nonswift
+  Properties:
+  - Name: recordWithIDWasDeletedBlock
+    SwiftPrivate: true
+    
+- Name: CKFetchRecordZoneChangesOptions
+  SwiftName: CKFetchRecordZoneChangesOperation.ZoneOptions
+    
 - Name: CKFetchRecordZonesOperation
   Methods:
   - Selector: 'fetchAllRecordZonesOperation'
     MethodKind: Class
     SwiftName: 'fetchAllRecordZonesOperation()'
+
+- Name: CKFetchShareMetadataOperation
+  Methods:
+  - Selector: "initWithShareURLs:"
+    MethodKind: Instance
+    SwiftName: 'init(shareURLs:)'
+  Properties:
+  - Name: rootRecordDesiredKeys
+    SwiftPrivate: true
+    
 - Name: CKFetchSubscriptionsOperation
   Methods:
   - Selector: 'fetchAllSubscriptionsOperation'
@@ -49,87 +100,38 @@
     SwiftPrivate: true
   - Name: fetchSubscriptionCompletionBlock
     SwiftPrivate: true
-- Name: CKRecord
+    
+- Name: CKModifyRecordsOperation
   Methods:
-  - Selector: 'setParentReferenceFromRecord:'
-    MethodKind: Instance
-    SwiftName: 'setParent(_:)'
-  - Selector: 'setParentReferenceFromRecordID:'
-    MethodKind: Instance
-    SwiftName: 'setParent(_:)'
-  - Selector: "initWithRecordType:zoneID:"
-    MethodKind: Instance
-    Availability: nonswift
-  - Selector: "initWithRecordType:"
+  - Selector: "initWithRecordsToSave:recordIDsToDelete:"
     MethodKind: Instance
     Availability: nonswift
-  - Selector: "initWithRecordType:recordID:"
-    MethodKind: Instance
-    SwiftPrivate: true
-  - Selector: "objectForKey:"
-    MethodKind: Instance
-    SwiftPrivate: true
-  - Selector: "setObject:forKey:"
-    MethodKind: Instance
-    SwiftPrivate: true
-  - Selector: "allKeys"
-    MethodKind: Instance
-    SwiftPrivate: true
-  - Selector: "objectForKeyedSubscript:"
+    
+- Name: CKModifyRecordZonesOperation
+  Methods:
+  - Selector: "initWithRecordZonesToSave:recordZoneIDsToDelete:"
     MethodKind: Instance
     Availability: nonswift
-  - Selector: "setObject:forKeyedSubscript:"
+    
+- Name: CKModifySubscriptionsOperation
+  Methods:
+  - Selector: "initWithSubscriptionsToSave:subscriptionIDsToDelete:"
     MethodKind: Instance
     Availability: nonswift
-  - Selector: "changedKeys"
-    MethodKind: Instance
-    SwiftPrivate: true
   Properties:
-  - Name: recordType
+  - Name: subscriptionIDsToDelete
     SwiftPrivate: true
-
-- Name: CKFetchShareMetadataOperation
-  Methods:
-  - Selector: "initWithShareURLs:"
-    MethodKind: Instance
-    SwiftName: 'init(shareURLs:)'
-  Properties:
-  - Name: rootRecordDesiredKeys
+  - Name: modifySubscriptionsCompletionBlock
     SwiftPrivate: true
 
-- Name: CKShare
-  Methods:
-  - Selector: 'initWithRootRecord:shareID:'
-    MethodKind: Instance
-    SwiftName: 'init(rootRecord:shareID:)'
-
-- Name: CKReference
-  SwiftName: CKRecord.Reference
+- Name: CKNotification
   Properties:
-  - Name: referenceAction
-    PropertyKind: Instance
-    SwiftName: action
-- Name: CKRecordID
-  SwiftName: CKRecord.ID
-  Methods:
-  - Selector: 'initWithRecordName:zoneID:'
-    MethodKind: Instance
-    SwiftPrivate: true
-- Name: CKRecordZoneID
-  SwiftName: CKRecordZone.ID
-  Methods:
-  - Selector: 'initWithZoneName:ownerName:'
-    MethodKind: Instance
+  - Name: subscriptionID
     SwiftPrivate: true
+    
 - Name: CKNotificationID
   SwiftName: CKNotification.ID
-- Name: CKFetchRecordZoneChangesConfiguration
-  SwiftName: CKFetchRecordZoneChangesOperation.ZoneConfiguration
-  Properties:
-  - Name: desiredKeys
-    SwiftPrivate: true
-- Name: CKQueryCursor
-  SwiftName: CKQueryOperation.Cursor
+    
 - Name: CKNotificationInfo
   SwiftName: CKSubscription.NotificationInfo
   Properties:
@@ -141,197 +143,238 @@
     SwiftPrivate: true
   - Name: desiredKeys
     SwiftPrivate: true
-- Name: CKShareParticipant
-  SwiftName: CKShare.Participant
-- Name: CKUserIdentityLookupInfo
-  SwiftName: CKUserIdentity.LookupInfo
 
+- Name: CKOperation
+  Properties:
+  - Name: operationID
+    SwiftPrivate: true
+
+- Name: CKOperationConfiguration
+  SwiftName: CKOperation.Configuration
 
-- Name: CKContainer
+- Name: CKQuery
   Methods:
-  - Selector: "fetchAllLongLivedOperationIDsWithCompletionHandler:"
+  - Selector: "initWithRecordType:predicate:"
     MethodKind: Instance
     SwiftPrivate: true
-  - Selector: "fetchLongLivedOperationWithID:completionHandler:"
-    MethodKind: Instance
+  Properties:
+  - Name: recordType
     SwiftPrivate: true
-- Name: CKFetchRecordZoneChangesOperation
-  Methods:
-  - Selector: "initWithRecordZoneIDs:configurationsByRecordZoneID:"
-    MethodKind: Instance
-    Availability: nonswift
+  
+- Name: CKQueryCursor
+  SwiftName: CKQueryOperation.Cursor
+    
+- Name: CKQueryOperation
   Properties:
-  - Name: recordWithIDWasDeletedBlock
+  - Name: desiredKeys
     SwiftPrivate: true
 
-- Name: CKModifyRecordZonesOperation
+- Name: CKQuerySubscription
   Methods:
-  - Selector: "initWithRecordZonesToSave:recordZoneIDsToDelete:"
+  - Selector: "initWithRecordType:predicate:subscriptionID:options:"
     MethodKind: Instance
-    Availability: nonswift
-- Name: CKModifyRecordsOperation
-  Methods:
-  - Selector: "initWithRecordsToSave:recordIDsToDelete:"
+    SwiftPrivate: true
+  - Selector: "initWithRecordType:predicate:options:"
     MethodKind: Instance
     Availability: nonswift
-- Name: CKModifySubscriptionsOperation
+  Properties:
+  - Name: recordType
+    SwiftPrivate: true
+    
+- Name: CKRecord
   Methods:
-  - Selector: "initWithSubscriptionsToSave:subscriptionIDsToDelete:"
+  # Init
+  - Selector: "initWithRecordType:"
     MethodKind: Instance
     Availability: nonswift
-  Properties:
-  - Name: subscriptionIDsToDelete
-    SwiftPrivate: true
-  - Name: modifySubscriptionsCompletionBlock
-    SwiftPrivate: true
-- Name: CKOperationConfiguration
-  SwiftName: CKOperation.Configuration
-- Name: CKShareMetadata
-  SwiftName: CKShare.Metadata
-- Name: CKSubscription
-  Properties:
-  - Name: recordType
+  - Selector: "initWithRecordType:recordID:"
+    MethodKind: Instance
     SwiftPrivate: true
-  - Name: subscriptionID
+  - Selector: "initWithRecordType:zoneID:"
+    MethodKind: Instance
+    Availability: nonswift
+  # Parent Reference
+  - Selector: 'setParentReferenceFromRecord:'
+    MethodKind: Instance
+    SwiftName: 'setParent(_:)'
+  - Selector: 'setParentReferenceFromRecordID:'
+    MethodKind: Instance
+    SwiftName: 'setParent(_:)'
+  # Fields
+  - Selector: "allKeys"
+    MethodKind: Instance
     SwiftPrivate: true
-- Name: CKOperation
-  Properties:
-  - Name: operationID
+  - Selector: "changedKeys"
+    MethodKind: Instance
     SwiftPrivate: true
-- Name: CKNotification
-  Properties:
-  - Name: subscriptionID
+  - Selector: "objectForKey:"
+    MethodKind: Instance
     SwiftPrivate: true
-- Name: CKQuerySubscription
-  Methods:
-  - Selector: "initWithRecordType:predicate:subscriptionID:options:"
+  - Selector: "setObject:forKey:"
     MethodKind: Instance
     SwiftPrivate: true
-  - Selector: "initWithRecordType:predicate:options:"
+  - Selector: "objectForKeyedSubscript:"
+    MethodKind: Instance
+    Availability: nonswift
+  - Selector: "setObject:forKeyedSubscript:"
     MethodKind: Instance
     Availability: nonswift
   Properties:
   - Name: recordType
     SwiftPrivate: true
-- Name: CKRecordZoneSubscription
+    
+- Name: CKRecordID
+  SwiftName: CKRecord.ID
   Methods:
-  - Selector: "initWithZoneID:subscriptionID:"
+  - Selector: 'initWithRecordName:zoneID:'
     MethodKind: Instance
     SwiftPrivate: true
-  Properties:
-  - Name: recordType
+    
+- Name: CKRecordZoneID
+  SwiftName: CKRecordZone.ID
+  Methods:
+  - Selector: 'initWithZoneName:ownerName:'
+    MethodKind: Instance
     SwiftPrivate: true
-- Name: CKDatabaseSubscription
+
+- Name: CKRecordZoneSubscription
   Methods:
-  - Selector: "initWithSubscriptionID:"
+  - Selector: "initWithZoneID:subscriptionID:"
     MethodKind: Instance
     SwiftPrivate: true
   Properties:
   - Name: recordType
     SwiftPrivate: true
-- Name: CKQuery
+
+- Name: CKReference
+  SwiftName: CKRecord.Reference
+  Properties:
+  - Name: referenceAction
+    PropertyKind: Instance
+    SwiftName: action
+
+- Name: CKShare
   Methods:
-  - Selector: "initWithRecordType:predicate:"
+  - Selector: 'initWithRootRecord:shareID:'
     MethodKind: Instance
-    SwiftPrivate: true
+    SwiftName: 'init(rootRecord:shareID:)'
+
+- Name: CKShareMetadata
+  SwiftName: CKShare.Metadata
+    
+- Name: CKShareParticipant
+  SwiftName: CKShare.Participant
+
+- Name: CKSubscription
   Properties:
   - Name: recordType
     SwiftPrivate: true
-- Name: CKQueryOperation
-  Properties:
-  - Name: desiredKeys
+  - Name: subscriptionID
     SwiftPrivate: true
-- Name: CKFetchRecordZoneChangesOptions
-  SwiftName: CKFetchRecordZoneChangesOperation.ZoneOptions
-
+  
+- Name: CKUserIdentityLookupInfo
+  SwiftName: CKUserIdentity.LookupInfo
 
 
-Protocols:
-- Name: CKRecordValue
-  SwiftName: __CKRecordObjCValue
-
 Globals:
 - Name: CKQueryOperationMaximumResults
   SwiftName: CKQueryOperation.maximumResults
-- Name: CKRecordTypeUserRecord
-  SwiftPrivate: true
 - Name: CKRecordParentKey
   SwiftPrivate: true
 - Name: CKRecordShareKey
   SwiftPrivate: true
-- Name: CKRecordZoneDefaultName
-  SwiftPrivate: true
 - Name: CKRecordTypeShare
   SwiftPrivate: true
-- Name: CKShareTitleKey
+- Name: CKRecordTypeUserRecord
+  SwiftPrivate: true
+- Name: CKRecordZoneDefaultName
   SwiftPrivate: true
 - Name: CKShareThumbnailImageDataKey
   SwiftPrivate: true
+- Name: CKShareTitleKey
+  SwiftPrivate: true
 - Name: CKShareTypeKey
   SwiftPrivate: true
 
-Typedefs:
-- Name: CKApplicationPermissionBlock
-  SwiftName: CKContainer_Application_PermissionBlock
-- Name: CKRecordType
-  Availability: nonswift
-- Name: CKRecordFieldKey
-  Availability: nonswift
-- Name: CKSubscriptionID
-  Availability: nonswift
-- Name: CKOperationID
-  Availability: nonswift
+
+Protocols:
+- Name: CKRecordValue
+  SwiftName: __CKRecordObjCValue
 
 
 Tags:
-- Name: CKErrorCode
-  NSErrorDomain: CKErrorDomain
-- Name: CKReferenceAction
-  SwiftName: CKRecord_Reference_Action
-- Name: CKShareParticipantAcceptanceStatus
-  SwiftName: CKShare_Participant_AcceptanceStatus
-- Name: CKShareParticipantPermission
-  SwiftName: CKShare_Participant_Permission
-- Name: CKShareParticipantRole
-  SwiftName: CKShare_Participant_Role
-- Name: CKShareParticipantType
-  SwiftName: CKShare_Participant_ParticipantType
-- Name: CKDatabaseScope
-  SwiftName: CKDatabase.Scope
 - Name: CKApplicationPermissions
-  SwiftName: CKContainer_Application_Permissions
+  SwiftName: CKContainer.ApplicationPermissions
 - Name: CKApplicationPermissionStatus
-  SwiftName: CKContainer_Application_PermissionStatus
-- Name: CKRecordSavePolicy
-  SwiftName: CKModifyRecordsOperation.RecordSavePolicy
+  SwiftName: CKContainer.ApplicationPermissionStatus
+- Name: CKDatabaseScope
+  SwiftName: CKDatabase.Scope
+- Name: CKErrorCode
+  NSErrorDomain: CKErrorDomain
 - Name: CKNotificationType
   SwiftName: CKNotification.NotificationType
-- Name: CKQueryNotificationReason
-  SwiftName: CKQueryNotification.Reason
 - Name: CKOperationGroupTransferSize
   SwiftName: CKOperationGroup.TransferSize
+- Name: CKQueryNotificationReason
+  SwiftName: CKQueryNotification.Reason
+- Name: CKQuerySubscriptionOptions
+  SwiftName: CKQuerySubscription.Options
+- Name: CKRecordSavePolicy
+  SwiftName: CKModifyRecordsOperation.RecordSavePolicy
 - Name: CKRecordZoneCapabilities
   SwiftName: CKRecordZone.Capabilities
+- Name: CKReferenceAction
+  SwiftName: CKRecord.ReferenceAction
+- Name: CKShareParticipantAcceptanceStatus
+  SwiftName: CKShare.ParticipantAcceptanceStatus
+- Name: CKShareParticipantPermission
+  SwiftName: CKShare.ParticipantPermission
+- Name: CKShareParticipantRole
+  SwiftName: CKShare.ParticipantRole
+- Name: CKShareParticipantType
+  SwiftName: CKShare.ParticipantType
 - Name: CKSubscriptionType
   SwiftName: CKSubscription.SubscriptionType
-- Name: CKQuerySubscriptionOptions
-  SwiftName: CKQuerySubscription.Options
+
+
+Typedefs:
+- Name: CKApplicationPermissionBlock
+  SwiftName: CKContainer.ApplicationPermissionBlock
+- Name: CKOperationID
+  Availability: nonswift
+- Name: CKRecordFieldKey
+  Availability: nonswift
+- Name: CKRecordType
+  Availability: nonswift
+- Name: CKSubscriptionID
+  Availability: nonswift
+
 
 SwiftVersions:
 - Version: 4.2
   Classes:
+  - Name: CKAsset
+    Properties:
+    - Name: fileURL
+      Nullability: N
   - Name: CKNotification
     Methods:
     - Selector: "notificationFromRemoteNotificationDictionary:"
       MethodKind: Class
       ResultType: "CKNotification * _Nonnull"
-  - Name: CKAsset
-    Properties:
-    - Name: fileURL
-      Nullability: N
+
 
 - Version: 4
   Classes:
+  - Name: CKContainer
+    Methods:
+    - Selector: "fetchAllLongLivedOperationIDsWithCompletionHandler:"
+      MethodKind: Instance
+      SwiftPrivate: false
+    - Selector: "fetchLongLivedOperationWithID:completionHandler:"
+      MethodKind: Instance
+      SwiftPrivate: false
+
   - Name: CKDatabase
     Methods:
     - Selector: 'fetchSubscriptionWithID:completionHandler:'
@@ -342,88 +385,86 @@
       MethodKind: Instance
       SwiftPrivate: false
       SwiftName: 'delete(withSubscriptionID:completionHandler:)'
-  - Name: CKFetchRecordsOperation
-    Properties:
-    - Name: desiredKeys
-      SwiftPrivate: false
-  - Name: CKFetchSubscriptionsOperation
+
+  - Name: CKDatabaseSubscription
     Methods:
-    - Selector: 'initWithSubscriptionIDs:'
+    - Selector: "initWithSubscriptionID:"
       MethodKind: Instance
       SwiftPrivate: false
     Properties:
-    - Name: subscriptionIDs
+    - Name: recordType
       SwiftPrivate: false
-    - Name: fetchSubscriptionCompletionBlock
+      
+  - Name: CKFetchRecordsOperation
+    Properties:
+    - Name: desiredKeys
       SwiftPrivate: false
 
+  - Name: CKFetchRecordZoneChangesConfiguration
+    SwiftName: CKFetchRecordZoneChangesConfiguration
+    Properties:
+    - Name: desiredKeys
+      SwiftPrivate: false
 
-
-  - Name: CKRecord
+  - Name: CKFetchRecordZoneChangesOperation
     Methods:
-    - Selector: "initWithRecordType:zoneID:"
-      MethodKind: Instance
-      Availability: available
-    - Selector: "initWithRecordType:"
+    - Selector: "initWithRecordZoneIDs:configurationsByRecordZoneID:"
       MethodKind: Instance
       Availability: available
-    - Selector: "initWithRecordType:recordID:"
-      MethodKind: Instance
+    Properties:
+    - Name: recordWithIDWasDeletedBlock
       SwiftPrivate: false
-    - Selector: "objectForKey:"
-      MethodKind: Instance
+
+  - Name: CKFetchRecordZoneChangesOptions
+    SwiftName: CKFetchRecordZoneChangesOptions
+
+  - Name: CKFetchShareMetadataOperation
+    Properties:
+    - Name: rootRecordDesiredKeys
       SwiftPrivate: false
-    - Selector: "setObject:forKey:"
+      
+  - Name: CKFetchSubscriptionsOperation
+    Methods:
+    - Selector: 'initWithSubscriptionIDs:'
       MethodKind: Instance
       SwiftPrivate: false
-    - Selector: "allKeys"
-      MethodKind: Instance
+    Properties:
+    - Name: subscriptionIDs
       SwiftPrivate: false
-    - Selector: "objectForKeyedSubscript:"
+    - Name: fetchSubscriptionCompletionBlock
+      SwiftPrivate: false
+      
+  - Name: CKModifyRecordsOperation
+    Methods:
+    - Selector: "initWithRecordsToSave:recordIDsToDelete:"
       MethodKind: Instance
       Availability: available
-    - Selector: "setObject:forKeyedSubscript:"
+      
+  - Name: CKModifyRecordZonesOperation
+    Methods:
+    - Selector: "initWithRecordZonesToSave:recordZoneIDsToDelete:"
       MethodKind: Instance
       Availability: available
-    - Selector: "changedKeys"
+
+  - Name: CKModifySubscriptionsOperation
+    Methods:
+    - Selector: "initWithSubscriptionsToSave:subscriptionIDsToDelete:"
       MethodKind: Instance
-      SwiftPrivate: false
+      Availability: available
     Properties:
-    - Name: recordType
+    - Name: subscriptionIDsToDelete
       SwiftPrivate: false
-
-  - Name: CKFetchShareMetadataOperation
-    Properties:
-    - Name: rootRecordDesiredKeys
+    - Name: modifySubscriptionsCompletionBlock
       SwiftPrivate: false
 
-  - Name: CKReference
-    SwiftName: CKReference
+  - Name: CKNotification
     Properties:
-    - Name: referenceAction
-      PropertyKind: Instance
-      SwiftName: referenceAction
-  - Name: CKRecordID
-    SwiftName: CKRecordID
-    Methods:
-    - Selector: 'initWithRecordName:zoneID:'
-      MethodKind: Instance
-      SwiftPrivate: false
-  - Name: CKRecordZoneID
-    SwiftName: CKRecordZoneID
-    Methods:
-    - Selector: 'initWithZoneName:ownerName:'
-      MethodKind: Instance
+    - Name: subscriptionID
       SwiftPrivate: false
+
   - Name: CKNotificationID
     SwiftName: CKNotificationID
-  - Name: CKFetchRecordZoneChangesConfiguration
-    SwiftName: CKFetchRecordZoneChangesConfiguration
-    Properties:
-    - Name: desiredKeys
-      SwiftPrivate: false
-  - Name: CKQueryCursor
-    SwiftName: CKQueryCursor
+    
   - Name: CKNotificationInfo
     SwiftName: CKNotificationInfo
     Properties:
@@ -435,120 +476,135 @@
       SwiftPrivate: false
     - Name: desiredKeys
       SwiftPrivate: false
-  - Name: CKShareParticipant
-    SwiftName: CKShareParticipant
-  - Name: CKUserIdentityLookupInfo
-    SwiftName: CKUserIdentityLookupInfo
 
-  - Name: CKContainer
-    Methods:
-    - Selector: "fetchAllLongLivedOperationIDsWithCompletionHandler:"
-      MethodKind: Instance
-      SwiftPrivate: false
-    - Selector: "fetchLongLivedOperationWithID:completionHandler:"
-      MethodKind: Instance
+  - Name: CKOperation
+    Properties:
+    - Name: operationID
       SwiftPrivate: false
 
-  - Name: CKModifySubscriptionsOperation
+  - Name: CKOperationConfiguration
+    SwiftName: CKOperationConfiguration
+
+  - Name: CKQuery
     Methods:
-    - Selector: "initWithSubscriptionsToSave:subscriptionIDsToDelete:"
+    - Selector: "initWithRecordType:predicate:"
       MethodKind: Instance
-      Availability: available
+      SwiftPrivate: false
     Properties:
-    - Name: subscriptionIDsToDelete
+    - Name: recordType
       SwiftPrivate: false
-    - Name: modifySubscriptionsCompletionBlock
+
+  - Name: CKQueryCursor
+    SwiftName: CKQueryCursor
+          
+  - Name: CKQueryOperation
+    Properties:
+    - Name: desiredKeys
       SwiftPrivate: false
 
-  - Name: CKFetchRecordZoneChangesOperation
+  - Name: CKQuerySubscription
     Methods:
-    - Selector: "initWithRecordZoneIDs:configurationsByRecordZoneID:"
+    - Selector: "initWithRecordType:predicate:subscriptionID:options:"
+      MethodKind: Instance
+      SwiftPrivate: false
+    - Selector: "initWithRecordType:predicate:options:"
       MethodKind: Instance
       Availability: available
     Properties:
-    - Name: recordWithIDWasDeletedBlock
+    - Name: recordType
       SwiftPrivate: false
-  - Name: CKModifyRecordZonesOperation
+
+  - Name: CKRecord
     Methods:
-    - Selector: "initWithRecordZonesToSave:recordZoneIDsToDelete:"
+    # Init
+    - Selector: "initWithRecordType:"
       MethodKind: Instance
       Availability: available
-  - Name: CKModifyRecordsOperation
-    Methods:
-    - Selector: "initWithRecordsToSave:recordIDsToDelete:"
+    - Selector: "initWithRecordType:recordID:"
       MethodKind: Instance
-      Availability: available
-  - Name: CKOperationConfiguration
-    SwiftName: CKOperationConfiguration
-  - Name: CKShareMetadata
-    SwiftName: CKShareMetadata
-  - Name: CKSubscription
-    Properties:
-    - Name: recordType
       SwiftPrivate: false
-    - Name: subscriptionID
+    - Selector: "initWithRecordType:zoneID:"
+      MethodKind: Instance
+      Availability: available
+    # Fields
+    - Selector: "allKeys"
+      MethodKind: Instance
       SwiftPrivate: false
-  - Name: CKOperation
-    Properties:
-    - Name: operationID
+    - Selector: "changedKeys"
+      MethodKind: Instance
       SwiftPrivate: false
-  - Name: CKNotification
-    Properties:
-    - Name: subscriptionID
+    - Selector: "objectForKey:"
+      MethodKind: Instance
       SwiftPrivate: false
-  - Name: CKQuerySubscription
-    Methods:
-    - Selector: "initWithRecordType:predicate:subscriptionID:options:"
+    - Selector: "setObject:forKey:"
       MethodKind: Instance
       SwiftPrivate: false
-    - Selector: "initWithRecordType:predicate:options:"
+    - Selector: "objectForKeyedSubscript:"
+      MethodKind: Instance
+      Availability: available
+    - Selector: "setObject:forKeyedSubscript:"
       MethodKind: Instance
       Availability: available
     Properties:
     - Name: recordType
       SwiftPrivate: false
-  - Name: CKRecordZoneSubscription
+
+  - Name: CKRecordID
+    SwiftName: CKRecordID
     Methods:
-    - Selector: "initWithZoneID:subscriptionID:"
+    - Selector: 'initWithRecordName:zoneID:'
       MethodKind: Instance
       SwiftPrivate: false
-    Properties:
-    - Name: recordType
-      SwiftPrivate: false
-  - Name: CKDatabaseSubscription
+
+  - Name: CKRecordZoneID
+    SwiftName: CKRecordZoneID
     Methods:
-    - Selector: "initWithSubscriptionID:"
+    - Selector: 'initWithZoneName:ownerName:'
       MethodKind: Instance
       SwiftPrivate: false
-    Properties:
-    - Name: recordType
-      SwiftPrivate: false
-  - Name: CKQuery
+
+  - Name: CKRecordZoneSubscription
     Methods:
-    - Selector: "initWithRecordType:predicate:"
+    - Selector: "initWithZoneID:subscriptionID:"
       MethodKind: Instance
       SwiftPrivate: false
     Properties:
     - Name: recordType
       SwiftPrivate: false
-  - Name: CKQueryOperation
+
+  - Name: CKReference
+    SwiftName: CKReference
     Properties:
-    - Name: desiredKeys
+    - Name: referenceAction
+      PropertyKind: Instance
+      SwiftName: referenceAction
+
+  - Name: CKShareMetadata
+    SwiftName: CKShareMetadata
+
+  - Name: CKShareParticipant
+    SwiftName: CKShareParticipant
+
+  - Name: CKSubscription
+    Properties:
+    - Name: recordType
+      SwiftPrivate: false
+    - Name: subscriptionID
       SwiftPrivate: false
-  - Name: CKFetchRecordZoneChangesOptions
-    SwiftName: CKFetchRecordZoneChangesOptions
 
-  Protocols:
-  - Name: CKRecordValue
-    SwiftName: CKRecordValue
+  - Name: CKUserIdentityLookupInfo
+    SwiftName: CKUserIdentityLookupInfo
+
 
   Globals:
   - Name: CKQueryOperationMaximumResults
     SwiftName: CKQueryOperationMaximumResults
 
-  Typedefs:
-  - Name: CKApplicationPermissionBlock
-    SwiftName: CKApplicationPermissionBlock
+
+  Protocols:
+  - Name: CKRecordValue
+    SwiftName: CKRecordValue
+
 
   Tags:
   - Name: CKReferenceAction
@@ -582,6 +638,10 @@
   - Name: CKQuerySubscriptionOptions
     SwiftName: CKQuerySubscriptionOptions
 
+  Typedefs:
+  - Name: CKApplicationPermissionBlock
+    SwiftName: CKApplicationPermissionBlock
+
 
 - Version: 3
   Classes:
@@ -590,9 +650,9 @@
     - Selector: "initWithShareURLs:"
       MethodKind: Instance
       SwiftName: 'init(share:)'
+      
   - Name: CKShare
     Methods:
     - Selector: 'initWithRootRecord:shareID:'
       MethodKind: Instance
       SwiftName: 'init(rootRecord:share:)'
-
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CloudKit.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CloudKit.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CloudKit.h	2021-03-16 08:41:05.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CloudKit.h	2021-06-02 00:29:27.000000000 -0400
@@ -9,8 +9,8 @@
 
 #import <CloudKit/CKDefines.h>
 
-#import <CloudKit/CKContainer.h>
 #import <CloudKit/CKAsset.h>
+#import <CloudKit/CKContainer.h>
 #import <CloudKit/CKDatabase.h>
 #import <CloudKit/CKError.h>
 #import <CloudKit/CKLocationSortDescriptor.h>
@@ -29,25 +29,26 @@
 #import <CloudKit/CKUserIdentity.h>
 #import <CloudKit/CKUserIdentityLookupInfo.h>
 
-#import <CloudKit/CKOperationGroup.h>
-#import <CloudKit/CKOperation.h>
+#pragma mark - Operations
+#import <CloudKit/CKAcceptSharesOperation.h>
 #import <CloudKit/CKDatabaseOperation.h>
-#import <CloudKit/CKModifyRecordsOperation.h>
-#import <CloudKit/CKFetchRecordsOperation.h>
+#import <CloudKit/CKDiscoverAllUserIdentitiesOperation.h>
+#import <CloudKit/CKDiscoverUserIdentitiesOperation.h>
+#import <CloudKit/CKFetchDatabaseChangesOperation.h>
+#import <CloudKit/CKFetchNotificationChangesOperation.h>
 #import <CloudKit/CKFetchRecordChangesOperation.h>
+#import <CloudKit/CKFetchRecordsOperation.h>
 #import <CloudKit/CKFetchRecordZoneChangesOperation.h>
-#import <CloudKit/CKQueryOperation.h>
-#import <CloudKit/CKModifyBadgeOperation.h>
-#import <CloudKit/CKFetchNotificationChangesOperation.h>
-#import <CloudKit/CKMarkNotificationsReadOperation.h>
-#import <CloudKit/CKFetchSubscriptionsOperation.h>
-#import <CloudKit/CKModifySubscriptionsOperation.h>
-#import <CloudKit/CKModifyRecordZonesOperation.h>
 #import <CloudKit/CKFetchRecordZonesOperation.h>
-#import <CloudKit/CKFetchWebAuthTokenOperation.h>
-#import <CloudKit/CKDiscoverUserIdentitiesOperation.h>
-#import <CloudKit/CKDiscoverAllUserIdentitiesOperation.h>
-#import <CloudKit/CKFetchShareParticipantsOperation.h>
-#import <CloudKit/CKAcceptSharesOperation.h>
 #import <CloudKit/CKFetchShareMetadataOperation.h>
-#import <CloudKit/CKFetchDatabaseChangesOperation.h>
+#import <CloudKit/CKFetchShareParticipantsOperation.h>
+#import <CloudKit/CKFetchSubscriptionsOperation.h>
+#import <CloudKit/CKFetchWebAuthTokenOperation.h>
+#import <CloudKit/CKMarkNotificationsReadOperation.h>
+#import <CloudKit/CKModifyBadgeOperation.h>
+#import <CloudKit/CKModifyRecordsOperation.h>
+#import <CloudKit/CKModifyRecordZonesOperation.h>
+#import <CloudKit/CKModifySubscriptionsOperation.h>
+#import <CloudKit/CKOperation.h>
+#import <CloudKit/CKOperationGroup.h>
+#import <CloudKit/CKQueryOperation.h>
Clone this wiki locally