Skip to content

CloudKit iOS xcode15.0 b5

Manuel de la Pena edited this page Aug 22, 2023 · 3 revisions

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

diff -ruN /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKAcceptSharesOperation.h /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKAcceptSharesOperation.h
--- /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKAcceptSharesOperation.h	2023-06-24 03:21:04
+++ /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKAcceptSharesOperation.h	2023-07-15 01:41:21
@@ -29,7 +29,7 @@
  *  should not be concurrently used outside of blocks assigned to this operation.
  */
 @property (nullable, copy, nonatomic) 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), xros(1.0, 1.0));
+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.
  *
@@ -40,7 +40,7 @@
  *  should not be concurrently used outside of blocks assigned to this operation.
  */
 @property (nullable, copy, nonatomic) 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), xros(1.0, 1.0));
+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
 
diff -ruN /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDatabase.h /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDatabase.h
--- /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDatabase.h	2023-06-24 03:17:14
+++ /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDatabase.h	2023-07-14 20:20:50
@@ -51,7 +51,7 @@
  *  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 (NS_SWIFT_SENDABLE ^)(NSArray<CKRecord *> * _Nullable results, NSError * _Nullable error))completionHandler
-CK_SWIFT_DEPRECATED("renamed to fetch(withQuery:inZoneWith:desiredKeys:resultsLimit:completionHandler:)", macos(10.10, 12.0), ios(8.0, 15.0), tvos(9.0, 15.0), watchos(3.0, 8.0), xros(1.0, 1.0));
+CK_SWIFT_DEPRECATED("renamed to fetch(withQuery: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 */
diff -ruN /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDefines.h /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDefines.h
--- /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDefines.h	2023-06-24 03:21:04
+++ /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDefines.h	2023-07-15 01:41:22
@@ -49,4 +49,8 @@
 #endif // CK_SUBCLASSING_DEPRECATED
 
 
+#ifndef CK_UNAVAILABLE
+    #define CK_UNAVAILABLE(msg) __attribute__((unavailable(msg)))
+#endif
+
 NS_HEADER_AUDIT_END(nullability, sendability)
diff -ruN /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDiscoverAllUserIdentitiesOperation.h /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDiscoverAllUserIdentitiesOperation.h
--- /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDiscoverAllUserIdentitiesOperation.h	2023-06-24 03:21:04
+++ /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDiscoverAllUserIdentitiesOperation.h	2023-07-15 01:41:22
@@ -41,7 +41,7 @@
  *  should not be concurrently used outside of blocks assigned to this operation.
  */
 @property (nullable, copy, nonatomic) 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), xros(1.0, 1.0));
+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_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDiscoverUserIdentitiesOperation.h /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDiscoverUserIdentitiesOperation.h
--- /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDiscoverUserIdentitiesOperation.h	2023-06-24 03:21:04
+++ /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKDiscoverUserIdentitiesOperation.h	2023-07-15 01:41:21
@@ -37,7 +37,7 @@
  *  should not be concurrently used outside of blocks assigned to this operation.
  */
 @property (nullable, copy, nonatomic) 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), xros(1.0, 1.0));
+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_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchDatabaseChangesOperation.h /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchDatabaseChangesOperation.h
--- /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchDatabaseChangesOperation.h	2023-06-26 04:25:44
+++ /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchDatabaseChangesOperation.h	2023-07-14 20:20:50
@@ -87,7 +87,7 @@
  *  should not be concurrently used outside of blocks assigned to this operation.
  */
 @property (nullable, copy, nonatomic) 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), xros(1.0, 1.0));
+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_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordZoneChangesOperation.h /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordZoneChangesOperation.h
--- /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordZoneChangesOperation.h	2023-06-24 05:21:12
+++ /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordZoneChangesOperation.h	2023-07-15 01:45:40
@@ -70,7 +70,7 @@
  *  should not be concurrently used outside of blocks assigned to this operation.
  */
 @property (nullable, copy, nonatomic) void (^recordZoneChangeTokensUpdatedBlock)(CKRecordZoneID *recordZoneID, CKServerChangeToken * _Nullable serverChangeToken, NSData * _Nullable clientChangeTokenData);
-@property (nullable, copy, nonatomic) 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), xros(1.0, 1.0));
+@property (nullable, copy, nonatomic) 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.
  *
@@ -80,7 +80,7 @@
  *  This block may share mutable state with other blocks assigned to this operation, but any such mutable state
  *  should not be concurrently used outside of blocks assigned to this operation.
  */
-@property (nullable, copy, nonatomic) 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), xros(1.0, 1.0));
+@property (nullable, copy, nonatomic) 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_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordZonesOperation.h /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordZonesOperation.h
--- /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordZonesOperation.h	2023-06-24 03:21:03
+++ /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordZonesOperation.h	2023-07-15 01:41:20
@@ -40,7 +40,7 @@
  *  should not be concurrently used outside of blocks assigned to this operation.
  */
 @property (nullable, copy, nonatomic) 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), xros(1.0, 1.0));
+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_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordsOperation.h /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordsOperation.h
--- /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordsOperation.h	2023-06-24 03:21:03
+++ /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchRecordsOperation.h	2023-07-15 01:41:21
@@ -45,7 +45,7 @@
  *  should not be concurrently used outside of blocks assigned to this operation.
  */
 @property (nullable, copy, nonatomic) 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), xros(1.0, 1.0));
+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.
@@ -58,7 +58,7 @@
  *  should not be concurrently used outside of blocks assigned to this operation.
  */
 @property (nullable, copy, nonatomic) 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), xros(1.0, 1.0));
+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_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchShareMetadataOperation.h /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchShareMetadataOperation.h
--- /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchShareMetadataOperation.h	2023-06-24 03:21:04
+++ /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchShareMetadataOperation.h	2023-07-15 01:41:21
@@ -59,7 +59,7 @@
  *  should not be concurrently used outside of blocks assigned to this operation.
  */
 @property (nullable, copy, nonatomic) 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), xros(1.0, 1.0));
+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_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchShareParticipantsOperation.h /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchShareParticipantsOperation.h
--- /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchShareParticipantsOperation.h	2023-06-24 03:21:04
+++ /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchShareParticipantsOperation.h	2023-07-15 01:41:21
@@ -45,7 +45,7 @@
  *  should not be concurrently used outside of blocks assigned to this operation.
  */
 @property (nullable, copy, nonatomic) 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), xros(1.0, 1.0));
+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_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchSubscriptionsOperation.h /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchSubscriptionsOperation.h
--- /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchSubscriptionsOperation.h	2023-06-24 03:21:03
+++ /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchSubscriptionsOperation.h	2023-07-15 01:41:20
@@ -40,7 +40,7 @@
  *  should not be concurrently used outside of blocks assigned to this operation.
  */
 @property (nullable, copy, nonatomic) 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), xros(1.0, 1.0));
+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_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchWebAuthTokenOperation.h /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchWebAuthTokenOperation.h
--- /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchWebAuthTokenOperation.h	2023-06-24 03:21:03
+++ /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKFetchWebAuthTokenOperation.h	2023-07-15 01:41:20
@@ -29,7 +29,7 @@
  *  This block may share mutable state with other blocks assigned to this operation, but any such mutable state
  *  should not be concurrently used outside of blocks assigned to this operation.
  */
-@property (nullable, copy, nonatomic) 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), xros(1.0, 1.0));
+@property (nullable, copy, nonatomic) 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_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKModifyRecordZonesOperation.h /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKModifyRecordZonesOperation.h
--- /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKModifyRecordZonesOperation.h	2023-06-24 03:21:04
+++ /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKModifyRecordZonesOperation.h	2023-07-15 01:41:22
@@ -46,7 +46,7 @@
  *  should not be concurrently used outside of blocks assigned to this operation.
  */
 @property (nullable, copy, nonatomic) 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), xros(1.0, 1.0));
+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_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKModifyRecordsOperation.h /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKModifyRecordsOperation.h
--- /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKModifyRecordsOperation.h	2023-06-26 04:27:20
+++ /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKModifyRecordsOperation.h	2023-07-15 01:45:40
@@ -112,7 +112,7 @@
  *  should not be concurrently used outside of blocks assigned to this operation.
  */
 @property (nullable, copy, nonatomic) 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), xros(1.0, 1.0));
+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_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKQueryOperation.h /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKQueryOperation.h
--- /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKQueryOperation.h	2023-06-24 10:41:31
+++ /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKQueryOperation.h	2023-07-15 00:11:36
@@ -90,7 +90,7 @@
  *  should not be concurrently used outside of blocks assigned to this operation.
  */
 @property (nullable, copy, nonatomic) 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), xros(1.0, 1.0));
+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_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKShareMetadata.h /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKShareMetadata.h
--- /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKShareMetadata.h	2023-06-24 03:21:03
+++ /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKShareMetadata.h	2023-07-15 01:41:21
@@ -17,6 +17,9 @@
 // NS_SWIFT_SENDABLE on macos(14.0), ios(17.0), tvos(17.0), watchos(10.0)
 @interface CKShareMetadata : NSObject <NSCopying, NSSecureCoding>
 
+- (instancetype)init CK_UNAVAILABLE("Obtain `CKShareMetadata` from `CKFetchShareMetadataOperation` or platform-specific scene / app delegate callbacks.");
++ (instancetype)new CK_UNAVAILABLE("Obtain `CKShareMetadata` from `CKFetchShareMetadataOperation` or platform-specific scene / app delegate callbacks.");
+
 @property (readonly, copy) NSString *containerIdentifier;
 @property (readonly, copy) CKShare *share;
 @property (nullable, readonly, copy) CKRecordID *hierarchicalRootRecordID API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0));
diff -ruN /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKSyncEngine.h /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKSyncEngine.h
--- /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKSyncEngine.h	2023-06-24 03:21:04
+++ /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKSyncEngine.h	2023-07-14 20:20:50
@@ -8,7 +8,7 @@
 #import <CloudKit/CKDefines.h>
 #import <CloudKit/CKSyncEngineRecordZoneChangeBatch.h>
 
-@class CKDatabase, CKOperationGroup, CKRecord, CKRecordID, CKRecordZone, CKRecordZoneID, CKSyncEngineConfiguration, CKSyncEngineEvent, CKSyncEngineFetchChangesOptions, CKSyncEngineSendChangesOptions, CKSyncEngineSendChangesContext, CKSyncEngineState, CKSyncEngineStateSerialization;
+@class CKDatabase, CKOperationGroup, CKRecord, CKRecordID, CKRecordZone, CKRecordZoneID, CKSyncEngineConfiguration, CKSyncEngineEvent, CKSyncEngineFetchChangesContext, CKSyncEngineFetchChangesOptions, CKSyncEngineFetchChangesScope, CKSyncEnginePendingRecordZoneChange, CKSyncEngineSendChangesContext, CKSyncEngineSendChangesOptions, CKSyncEngineSendChangesScope, CKSyncEngineState, CKSyncEngineStateSerialization;
 @protocol CKSyncEngineDelegate;
 
 NS_HEADER_AUDIT_BEGIN(nullability, sendability)
@@ -221,17 +221,13 @@
 ///
 /// ```objc
 /// - (CKSyncEngineRecordZoneChangeBatch *)syncEngine:(CKSyncEngine *)syncEngine nextRecordZoneChangeBatchForContext:(CKSyncEngineSendChangesContext *)context {
-///     NSArray<CKRecordZoneID *> *zoneIDs = context.options.zoneIDs;
+///     CKSyncEngineSendChangesScope *scope = context.options.scope;
 ///
-///     NSArray<CKSyncEnginePendingRecordZoneChange *> *pendingChangesToSave = syncEngine.state.pendingRecordZoneChanges;
-///     if (zoneIDs != nil) {
-///         NSMutableArray<CKSyncEnginePendingRecordZoneChange *> *filteredChanges = [NSMutableArray new];
-///         for (CKSyncEnginePendingRecordZoneChange *pendingChange in pendingChangesToSave) {
-///             if ([zoneIDs containsObject:pendingChange.recordID.zoneID]) {
-///                 [filteredChanges addObject:pendingChange];
-///             }
+///     NSMutableArray<CKSyncEnginePendingRecordZoneChange *> *pendingChanges = [NSMutableArray new];
+///     for (CKSyncEnginePendingRecordZoneChange *pendingChange in syncEngine.state.pendingRecordZoneChanges) {
+///         if ([scope containsPendingRecordZoneChange:pendingChange]) {
+///             [filteredChanges addObject:pendingChange];
 ///         }
-///         pendingChangesToSave = filteredChanges;
 ///     }
 ///
 ///     CKSyncEngineRecordZoneChangeBatch *batch = [[CKSyncEngineRecordZoneChangeBatch alloc] initWithPendingChanges:pendingChangesToSave recordProvider:^CKRecord * _Nullable(CKRecordID *recordID) {
@@ -245,13 +241,50 @@
 
 @optional
 
-/// Called to determine whether the sync engine should fetch changes for a particular zone.
+/// Returns a custom set of options for `CKSyncEngine` to use while fetching changes.
 ///
-/// The default implementation always returns true, so the sync engine will fetch changes for all zones by default.
-/// If you don't want it to fetch changes for a particular zone, you can return false for that zone.
+/// While `CKSyncEngine` fetches changes from the server, it calls this function to determine priority and other options for fetching changes.
+/// This allows you to configure your fetches dynamically while the state changes in your app.
 ///
-/// This function will be called any time the sync engine is about to fetch changes.
-- (BOOL)syncEngine:(CKSyncEngine *)syncEngine shouldFetchChangesForZoneID:(CKRecordZoneID *)zoneID NS_SWIFT_NAME(syncEngine(_:shouldFetchChanges:));
+/// For example, you can use this to prioritize fetching the object currently showing in the UI.
+/// You can also use this to prioritize specific zones during initial sync.
+///
+/// By default, `CKSyncEngine` will use whatever options are in the context.
+/// You can return `context.options` if you don't want to perform any customization.
+///
+/// This callback will be called in between each server request while fetching changes.
+/// This allows the fetching mechanism to react dynamically while your app state changes.
+///
+/// An example implementation might look something like this:
+/// ```objc
+/// - (CKSyncEngineFetchChangesOptions *)syncEngine:(CKSyncEngine *)syncEngine nextFetchChangesOptionsForContext:(CKSyncEngineFetchChangesContext *)context {
+///
+///      // Start with the options from the context.
+///     CKSyncEngineFetchChangesOptions *options = context.options;
+///
+///     // By default, the sync engine will automatically fetch changes for all zones.
+///     // If you know that you only want to sync a specific set of zones, you can override that here.
+///     options.scope = [[CKSyncEngineFetchChangesScope alloc] initWithZoneIDs:@[...]];
+///
+///     // You can prioritize specific zones to be fetched first by putting them in order.
+///     NSMutableArray<CKRecordZoneID *> *prioritizedZoneIDs = [[NSMutableArray alloc] init];
+///
+///     // If you're showing some data in the UI, you might want to prioritize that zone first.
+///     CKRecordZoneID *onScreenZoneID = uiController.currentlyViewedItem.zoneID;
+///     if (onScreenZoneID != nil) {
+///         [prioritizedZoneIDs addObject:onScreenZoneID];
+///     }
+///
+///     // You could also prioritize special, well-known zones if that makes sense for your app.
+///     // For example, if you have a top-level metadata zone that you'd like to sync first, you can prioritize that here.
+///     CKRecordZoneID *topLevelZoneID = [[CKRecordZoneID alloc] initWithZoneName:@"MyImportantMetadata"];
+///     [prioritizedZoneIDs addObject:topLevelZoneID];
+///
+///     options.prioritizedZoneIDs = prioritizedZoneIDs;
+///     return options
+/// }
+/// ```
+- (CKSyncEngineFetchChangesOptions *)syncEngine:(CKSyncEngine *)syncEngine nextFetchChangesOptionsForContext:(CKSyncEngineFetchChangesContext *)context NS_SWIFT_NAME(syncEngine(_:fetchChangesOptions:));
 
 @end
 
@@ -262,13 +295,10 @@
 NS_REFINED_FOR_SWIFT
 CK_SUBCLASSING_RESTRICTED
 NS_SWIFT_SENDABLE
-@interface CKSyncEngineFetchChangesOptions : NSObject
+@interface CKSyncEngineFetchChangesOptions : NSObject <NSCopying>
 
-/// The scope of zone IDs in which to fetch changes.
-///
-/// If you only want to fetch changes for a particular set of zones, you can initialize your options with those zone IDs.
-/// If this is `nil`, then the request will include all zones.
-@property (nullable, readonly, copy) NSArray<CKRecordZoneID *> *zoneIDs;
+/// The scope in which to fetch changes from the server.
+@property (copy) CKSyncEngineFetchChangesScope *scope;
 
 /// The operation group to use for the underlying operations when fetching changes.
 ///
@@ -276,40 +306,112 @@
 /// If you don't provide an operation group, a default one will be created for you.
 @property (strong) CKOperationGroup *operationGroup;
 
-- (instancetype)initWithZoneIDs:(nullable NSArray<CKRecordZoneID *> *)zoneIDs;
+/// A list of zones that should be prioritized over others while fetching changes.
+///
+/// `CKSyncEngine` will fetch changes for the zones in this list first before any other zones.
+/// You might use this to prioritize a specific set of zones for initial sync.
+/// You could also prioritize the object currently showing in the UI by putting it first in this list.
+///
+/// Any zones not included in this list will be prioritized in a default manner.
+/// If a zone in this list has no changes to fetch, then that zone will be ignored.
+@property (copy) NSArray<CKRecordZoneID *> *prioritizedZoneIDs;
 
+/// Initializes a set of options with the specific scope.
+/// If no scope is provided, the default scope will include everything.
+- (instancetype)initWithScope:(nullable CKSyncEngineFetchChangesScope *)scope;
+
 @end
 
+/// A scope in which the sync engine will fetch changes from the server.
+API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0))
+NS_REFINED_FOR_SWIFT
+CK_SUBCLASSING_RESTRICTED
+NS_SWIFT_SENDABLE
+@interface CKSyncEngineFetchChangesScope : NSObject <NSCopying>
+
+/// A specific set of zone IDs to include in the scope.
+/// For example, if you want to fetch changes for a specific set of zones, you can specify them here.
+/// If `nil`, this scope includes all zones except those in `excludedZoneIDs`.
+@property (nullable, readonly, copy) NSSet<CKRecordZoneID *> *zoneIDs;
+
+/// A specific set of zone IDs to exclude from this scope.
+/// If you know that you don't want to fetch changes for a particular set of zones, you can set those zones here.
+@property (readonly, copy) NSSet<CKRecordZoneID *> *excludedZoneIDs;
+
+/// Creates a scope that includes only the specified set of zones.
+- (instancetype)initWithZoneIDs:(nullable NSSet<CKRecordZoneID *> *)zoneIDs;
+
+/// Creates a scope that includes all zones except the specified excluded zones.
+- (instancetype)initWithExcludedZoneIDs:(NSSet<CKRecordZoneID *> *)zoneIDs;
+
+@end
+
 /// A set of options to use when sending changes to the server.
 API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0))
 NS_REFINED_FOR_SWIFT
 CK_SUBCLASSING_RESTRICTED
 NS_SWIFT_SENDABLE
-@interface CKSyncEngineSendChangesOptions : NSObject
+@interface CKSyncEngineSendChangesOptions : NSObject <NSCopying>
 
+/// The scope in which to send changes to the server.
+@property (copy) CKSyncEngineSendChangesScope *scope;
+
+/// The operation group to use for the underlying operations when sending changes.
+///
+/// You might set an operation group with a particular name in order to help you analyze telemetry in the CloudKit Console.
+/// If you don't provide an operation group, a default one will be created for you.
+@property (strong) CKOperationGroup *operationGroup;
+
+/// Initializes a set of options with the specific scope.
+/// If no scope is provided, the default scope will include everything.
+- (instancetype)initWithScope:(nullable CKSyncEngineSendChangesScope *)scope;
+
+@end
+
+/// A scope in which the sync engine will send changes to  the server.
+API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0))
+NS_REFINED_FOR_SWIFT
+CK_SUBCLASSING_RESTRICTED
+NS_SWIFT_SENDABLE
+@interface CKSyncEngineSendChangesScope : NSObject <NSCopying>
+
 /// The scope of zone IDs in which to send changes.
 ///
-/// If you only want to send changes for a particular set of zones, you can initialize your options with those zone IDs.
+/// If you only want to send changes for a particular set of zones, you can initialize your scope with those zone IDs.
 /// When creating the next batch of changes to send to the server, consult this and only send changes within these zones.
 /// If this and `recordIDs` are `nil`, then you should send all changes.
-@property (nullable, readonly, copy) NSArray<CKRecordZoneID *> *zoneIDs;
+@property (nullable, readonly, copy) NSSet<CKRecordZoneID *> *zoneIDs;
 
+/// A specific set of zone IDs to exclude from this scope.
+/// If you know that you don't want to send changes for a particular set of zones, you can set those zones here.
+///
+/// Note that if `zoneIDs` is set, then  `excludedZoneIDs` will always be empty.
+@property (readonly, copy) NSSet<CKRecordZoneID *> *excludedZoneIDs;
+
 /// The scope of record IDs in which to send changes.
 ///
-/// If you only want to send changes for a particular set of records, you can initialize your options with those records IDs.
+/// If you only want to send changes for a particular set of records, you can initialize your scope with those records IDs.
 /// When creating the next batch of changes to send to the server, consult this property and only send changes for these record IDs.
 /// If this and `zoneIDs` are `nil`, then you should send all changes.
-@property (nullable, readonly, copy) NSArray<CKRecordID *> *recordIDs;
+@property (nullable, readonly, copy) NSSet<CKRecordID *> *recordIDs;
 
-/// The operation group to use for the underlying operations when sending changes.
-///
-/// You might set an operation group with a particular name in order to help you analyze telemetry in the CloudKit Console.
-/// If you don't provide an operation group, a default one will be created for you.
-@property (strong) CKOperationGroup *operationGroup;
+/// Creates a scope that contains only the given zone IDs.
+/// If `zoneIDs` is nil, then this scope contains all zones.
+- (instancetype)initWithZoneIDs:(nullable NSSet<CKRecordZoneID *> *)zoneIDs;
 
-- (instancetype)initWithZoneIDs:(nullable NSArray<CKRecordZoneID *> *)zoneIDs;
-- (instancetype)initWithRecordIDs:(nullable NSArray<CKRecordID *> *)recordIDs;
+/// Creates a scope that contains all zones except for the given zone IDs.
+- (instancetype)initWithExcludedZoneIDs:(NSSet<CKRecordZoneID *> *)excludedZoneIDs;
 
+/// Creates a scope that includes only the given record IDs.
+/// If `recordIDs` is nil, this scope contains all records.
+- (instancetype)initWithRecordIDs:(nullable NSSet<CKRecordID *> *)recordIDs;
+
+/// Returns true if this scope includes the given record ID.
+- (BOOL)containsRecordID:(CKRecordID *)recordID;
+
+/// Returns true if this scope includes the given pending change.
+- (BOOL)containsPendingRecordZoneChange:(CKSyncEnginePendingRecordZoneChange *)pendingRecordZoneChange;
+
 @end
 
 API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0))
@@ -323,6 +425,29 @@
     CKSyncEngineSyncReasonManual,
 };
 
+/// The context of an attempt to fetch changes from the server.
+///
+/// The sync engine might attempt to fetch changes to the server for many reasons.
+/// For example, if you call `fetchChanges`, it'll try to fetch changes immediately.
+/// Or if it receives a push notification, it'll schedule a sync and fetch changes when the scheduler task runs.
+/// This object represents one of those attempts to fetch changes.
+API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0))
+NS_REFINED_FOR_SWIFT
+CK_SUBCLASSING_RESTRICTED
+NS_SWIFT_SENDABLE
+@interface CKSyncEngineFetchChangesContext : NSObject
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+/// The reason why the sync engine is attempting to fetch changes.
+@property (readonly, assign) CKSyncEngineSyncReason reason;
+
+/// The options being used for this attempt to fetch changes.
+@property (readonly, copy) CKSyncEngineFetchChangesOptions *options;
+
+@end
+
 /// The context of an attempt to send changes to the server.
 ///
 /// The sync engine might attempt to send changes to the server for many reasons.
@@ -339,10 +464,10 @@
 + (instancetype)new NS_UNAVAILABLE;
 
 /// The reason why the sync engine is attempting to send changes.
-@property (readonly, assign, nonatomic) CKSyncEngineSyncReason reason;
+@property (readonly, assign) CKSyncEngineSyncReason reason;
 
 /// The options being used for this attempt to send changes.
-@property (readonly, strong, nonatomic) CKSyncEngineSendChangesOptions *options;
+@property (readonly, copy) CKSyncEngineSendChangesOptions *options;
 
 @end
 
diff -ruN /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKSyncEngineEvent.h /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKSyncEngineEvent.h
--- /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKSyncEngineEvent.h	2023-06-26 04:27:19
+++ /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKSyncEngineEvent.h	2023-07-14 20:08:09
@@ -8,8 +8,7 @@
 #import <Foundation/Foundation.h>
 #import <CloudKit/CKRecord.h>
 
-@class CKRecordZone, CKRecordZoneID, CKSyncEngineFailedRecordSave, CKSyncEngineFailedZoneSave, CKSyncEngineFetchedRecordDeletion, CKSyncEngineFetchedZoneDeletion, CKSyncEngineSendChangesContext, CKSyncEngineStateSerialization;
-@class CKSyncEngineStateUpdateEvent, CKSyncEngineAccountChangeEvent, CKSyncEngineFetchedDatabaseChangesEvent, CKSyncEngineFetchedRecordZoneChangesEvent, CKSyncEngineSentDatabaseChangesEvent, CKSyncEngineSentRecordZoneChangesEvent, CKSyncEngineWillFetchChangesEvent, CKSyncEngineWillFetchRecordZoneChangesEvent, CKSyncEngineDidFetchRecordZoneChangesEvent, CKSyncEngineDidFetchChangesEvent, CKSyncEngineWillSendChangesEvent, CKSyncEngineDidSendChangesEvent;
+@class CKRecordZone, CKRecordZoneID, CKSyncEngineAccountChangeEvent, CKSyncEngineDidFetchChangesEvent, CKSyncEngineDidFetchRecordZoneChangesEvent, CKSyncEngineDidSendChangesEvent, CKSyncEngineFailedRecordSave, CKSyncEngineFailedZoneSave, CKSyncEngineFetchedDatabaseChangesEvent, CKSyncEngineFetchedRecordDeletion, CKSyncEngineFetchedRecordZoneChangesEvent, CKSyncEngineFetchedZoneDeletion, CKSyncEngineSendChangesContext, CKSyncEngineSentDatabaseChangesEvent, CKSyncEngineSentRecordZoneChangesEvent, CKSyncEngineStateSerialization, CKSyncEngineStateUpdateEvent, CKSyncEngineWillFetchChangesEvent, CKSyncEngineWillFetchRecordZoneChangesEvent, CKSyncEngineWillSendChangesEvent;
 
 NS_HEADER_AUDIT_BEGIN(nullability, sendability)
 
diff -ruN /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKSyncEngineRecordZoneChangeBatch.h /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKSyncEngineRecordZoneChangeBatch.h
--- /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKSyncEngineRecordZoneChangeBatch.h	2023-06-24 03:21:03
+++ /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKSyncEngineRecordZoneChangeBatch.h	2023-07-15 01:41:21
@@ -30,7 +30,6 @@
 - (nullable instancetype)initWithPendingChanges:(NSArray<CKSyncEnginePendingRecordZoneChange *> *)pendingChanges
                                  recordProvider:(CKRecord * _Nullable (NS_SWIFT_SENDABLE NS_NOESCAPE ^)(CKRecordID *recordID))recordProvider;
 
-
 /// Creates a batch of record zone changes to send to the server with a specific set of changes.
 ///
 /// If you'd like to construct your own custom batches of changes to send to the server, you can do so with this initializer.
diff -ruN /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKSyncEngineState.h /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKSyncEngineState.h
--- /Applications/Xcode_15.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKSyncEngineState.h	2023-06-24 10:41:31
+++ /Applications/Xcode_15.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CloudKit.framework/Headers/CKSyncEngineState.h	2023-07-15 02:40:24
@@ -70,6 +70,10 @@
 /// When the sync task runs, it will ask your delegate for pending changes in `nextRecordZoneChangeBatch`.
 @property (assign) BOOL hasPendingUntrackedChanges;
 
+/// The list of zone IDs that have new changes to fetch from the server.
+/// `CKSyncEngine` keeps track of these zones and will update this list as it receives new information.
+@property (readonly, copy) NSArray<CKRecordZoneID *> *zoneIDsWithUnfetchedServerChanges;
+
 /// Adds to the list of pending record zone changes.
 ///
 /// When you add a new pending change, the sync engine will automatically schedule a sync task.
@@ -110,8 +114,8 @@
 API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0))
 NS_REFINED_FOR_SWIFT
 typedef NS_ENUM(NSInteger, CKSyncEnginePendingRecordZoneChangeType) {
-    CKSyncEnginePendingRecordZoneChangeTypeSave,
-    CKSyncEnginePendingRecordZoneChangeTypeDelete,
+    CKSyncEnginePendingRecordZoneChangeTypeSaveRecord,
+    CKSyncEnginePendingRecordZoneChangeTypeDeleteRecord,
 };
 
 /// A change in a record zone that needs to be sent to the server.
@@ -135,8 +139,8 @@
 API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), watchos(10.0))
 NS_REFINED_FOR_SWIFT
 typedef NS_ENUM(NSInteger, CKSyncEnginePendingDatabaseChangeType) {
-    CKSyncEnginePendingDatabaseChangeTypeSave,
-    CKSyncEnginePendingDatabaseChangeTypeDelete,
+    CKSyncEnginePendingDatabaseChangeTypeSaveZone,
+    CKSyncEnginePendingDatabaseChangeTypeDeleteZone,
 };
 
 /// A change in a database that needs to be sent to the server.
Clone this wiki locally