Skip to content

FileProvider iOS xcode26.0 b1

Alex Soto edited this page Jun 9, 2025 · 1 revision

#FileProvider.framework

diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/FileProvider.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/FileProvider.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/FileProvider.h	2025-04-19 05:07:26
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/FileProvider.h	2025-05-23 10:33:46
@@ -25,5 +25,6 @@
 #import <FileProvider/NSFileProviderItemDecoration.h>
 #import <FileProvider/NSFileProviderRequest.h>
 #import <FileProvider/NSFileProviderReplicatedExtension.h>
+#import <FileProvider/NSFileProviderSearch.h>
 #import <FileProvider/NSFileProviderTesting.h>
 #import <FileProvider/NSFileProviderKnownFolders.h>
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderDefines.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderDefines.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderDefines.h	2025-04-19 05:07:26
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderDefines.h	2025-05-23 10:33:46
@@ -46,4 +46,9 @@
 #define FILEPROVIDER_API_AVAILABILITY_DESKTOP API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(watchos, tvos) API_UNAVAILABLE(ios, macCatalyst)
 
 #define FILEPROVIDER_API_AVAILABILITY_V8_0_IOS API_AVAILABLE(macos(15.0), ios(18.0)) API_UNAVAILABLE(watchos, tvos) API_UNAVAILABLE(macCatalyst)
+
 #define FILEPROVIDER_API_AVAILABILITY_FEEDBACK API_AVAILABLE(macos(15.4)) API_UNAVAILABLE(watchos, tvos) API_UNAVAILABLE(ios, macCatalyst)
+
+#define FILEPROVIDER_API_AVAILABILITY_SEARCH API_AVAILABLE(macos(26.0)) API_UNAVAILABLE(watchos, tvos) API_UNAVAILABLE(ios, macCatalyst)
+
+#define FILEPROVIDER_API_AVAILABILITY_SYNC_CONTROLS API_AVAILABLE(macos(26.0), ios(26.0)) API_UNAVAILABLE(watchos, tvos) API_UNAVAILABLE(macCatalyst)
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderDomain.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderDomain.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderDomain.h	2025-04-25 21:00:09
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderDomain.h	2025-05-23 06:16:34
@@ -269,6 +269,15 @@
  */
 @property (readwrite, assign) NSFileProviderKnownFolders supportedKnownFolders FILEPROVIDER_API_AVAILABILITY_DESKTOP;
 
+/**
+  Whether the system should use this domain's
+  `NSFileProviderSearching` implementation to support
+  search experiences.
+
+  Defaults to NO.
+ */
+@property (readwrite, assign) BOOL supportsStringSearchRequest FILEPROVIDER_API_AVAILABILITY_SEARCH;
+
 @end
 
 FILEPROVIDER_API_AVAILABILITY_V2
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderError.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderError.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderError.h	2025-04-25 21:00:09
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderError.h	2025-05-23 10:33:46
@@ -183,6 +183,12 @@
      `com.apple.fileprovider-nonui` application extension for this domain's app bundle.
      */
     NSFileProviderErrorApplicationExtensionNotFound FILEPROVIDER_API_AVAILABILITY_V6_0_IOS = -2014,
+
+    /*
+     Returned by the provider when a modifyItem with the failUploadOnConflict policy fails
+     because of a conflict with the server version.
+    */
+    NSFileProviderErrorLocalVersionConflictingWithServer FILEPROVIDER_API_AVAILABILITY_SYNC_CONTROLS = -2015,
 } FILEPROVIDER_API_AVAILABILITY_V2_V3;
 
 @interface NSError (NSFileProviderError)
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderManager.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderManager.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderManager.h	2025-04-19 02:29:18
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderManager.h	2025-05-23 10:34:33
@@ -111,7 +111,7 @@
  The location may differ from the logical parentURL/filename.
  If an item on disk cannot be assigned the requested name (e.g. because the local
  file system has different case collision rules from the provider), one of the items can be assigned
- a different local name. In that case, the "com.apple.fileprovider.before-bounce#P" extended
+ a different local name. In that case, the "com.apple.fileprovider.before-bounce#PX" extended
  attribute will contain the filename before collision resolution.
  This attribute is only set if the item has been assigned a different local name following
  a collision. Such local names are not synced up to the provider; the purpose of the attribute is
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderModifyItemOptions.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderModifyItemOptions.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderModifyItemOptions.h	2025-04-19 05:07:26
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderModifyItemOptions.h	2025-05-23 10:33:46
@@ -15,4 +15,10 @@
      This is similar to NSFileProviderCreateItemMayAlreadyExist
      */
     NSFileProviderModifyItemMayAlreadyExist = 1 << 0,
+    /**
+    If the base version of the item trying to be uploaded doesn't match
+    the version of the file on server, the call to modifyItem should fail with a
+    NSFileProviderErrorLocalVersionConflictingWithServer error.
+    */
+    NSFileProviderModifyItemFailOnConflict FILEPROVIDER_API_AVAILABILITY_SYNC_CONTROLS = 1 << 1,
 } FILEPROVIDER_API_AVAILABILITY_V3_IOS;
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderReplicatedExtension.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderReplicatedExtension.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderReplicatedExtension.h	2025-04-19 05:07:26
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderReplicatedExtension.h	2025-05-23 06:16:34
@@ -723,6 +723,11 @@
  the colliding items. When the collision is resolved, the system will call
  modifyItem again.
 
+ In case the NSFileProviderModifyItemFailOnConflict option is passed, the provider should
+ fail the modification if the baseVersion does not match the version on the server. It
+ will be up to the system to merge the conflict and call modifyItem again with an
+ updated baseVersion.
+
  The extension can also report NSFileProviderErrorNotAuthenticated,
  NSFileProviderErrorCannotSynchronize, or NSFileProviderErrorExcludedFromSync,
  in case the modification cannot be applied because of the current state of the
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderSearch.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderSearch.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderSearch.h	1969-12-31 19:00:00
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderSearch.h	2025-05-23 06:21:16
@@ -0,0 +1,116 @@
+//
+//  NSFileProviderSearch.h
+//  FileProvider
+//
+//  Copyright © 2024 Apple Inc. All rights reserved.
+//
+
+#import <FileProvider/NSFileProviderDefines.h>
+#import <FileProvider/NSFileProviderItem.h>
+#import <FileProvider/NSFileProviderEnumerating.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+FILEPROVIDER_API_AVAILABILITY_SEARCH
+@protocol NSFileProviderSearchResult
+
+/// The identifier for this search result.
+/// This identifier should be usable on API calls from the
+/// ``NSFileProviderReplicatedExtension`` protocol.
+@property (nonatomic, readonly, copy) NSFileProviderItemIdentifier itemIdentifier;
+
+@property (nonatomic, readonly, copy) NSString *filename;
+
+@property (nonatomic, readonly, copy, nullable) NSDate *creationDate;
+
+@property (nonatomic, readonly, copy, nullable) NSDate *contentModificationDate;
+
+@property (nonatomic, readonly, copy, nullable) NSDate *lastUsedDate;
+
+@property (nonatomic, readonly, copy) UTType *contentType;
+
+@property (nonatomic, readonly, copy, nullable) NSNumber *documentSize;
+
+@end
+
+FILEPROVIDER_API_AVAILABILITY_SEARCH
+@protocol NSFileProviderSearchEnumerationObserver <NSObject>
+
+- (void)didEnumerateSearchResults:(NSArray <id<NSFileProviderSearchResult>> *)searchResults;
+
+/**
+ Call this method after enumerating a full page of results.  If you set a non-nil
+ nextPage, -[NSFileProviderSearchEnumerator enumerateSearchResultsToObserver:startingAtPage:]
+ might be called with nextPage to enumerate more items.
+
+ Page data is limited to 500 bytes.  Setting a larger nextPage interrupts the
+ enumeration.
+ */
+- (void)finishEnumeratingUpToPage:(nullable NSFileProviderPage)nextPage NS_SWIFT_NAME(finishEnumerating(upTo:));
+
+/**
+  Finishing a search enumeration with an error will cause the system to stop
+  requesting additional pages of results.
+  The system will not retry in case of an error. It is up to the extension
+  to decide whether to retry errors internally, in their implementation of `enumerateSearchResultsForObserver`,
+  or to return the error to the system and end the search query.
+ */
+- (void)finishEnumeratingWithError:(NSError *)error;
+
+/**
+ The maximum number of results to return in a single page enumeration.
+
+ If the extension returns more than this number of results in a single page enumeration,
+ the system will crash the extension process.
+ */
+@property (nonatomic, readonly) NSInteger maxNumberOfResults;
+
+@end
+
+FILEPROVIDER_API_AVAILABILITY_SEARCH
+@protocol NSFileProviderSearchEnumerator <NSObject>
+
+/**
+  Called when the system wants to cancel a currently running enumeration, or when the system is finished using this enumerator object.
+
+  For instance, the user has changed their query, and the result of the currently running query will no longer
+  be used by the system.
+
+  Or, the system is finished using this enumerator object.
+
+  The extension should cancel any outstanding requests and cleanup resources.
+ */
+- (void)invalidate;
+
+/**
+ Enumerate search results starting from the specified page.
+
+ - Parameters:
+  - observer: The observer object, which the extension will use to provide results.
+  - page: If a previous enumeration returned a `nextPage` on
+          ``-[NSFileProviderSearchEnumerationObserver finishEnumeratingUpToPage:]``,
+          the system may pass that page into the next enumeration.
+          The page should contain whatever information is needed to resume the enumeration.
+ */
+- (void)enumerateSearchResultsForObserver:(id<NSFileProviderSearchEnumerationObserver>)observer
+                           startingAtPage:(NSFileProviderPage _Nullable)page NS_SWIFT_NAME(enumerateSearchResults(for:startingAt:));
+
+@end
+
+FILEPROVIDER_API_AVAILABILITY_SEARCH
+@interface NSFileProviderStringSearchRequest: NSObject
+
+/// A plaintext string, representing the query the user entered into the system search UI.
+@property (nonatomic, readonly) NSString *query;
+
+@end
+
+FILEPROVIDER_API_AVAILABILITY_SEARCH
+@protocol NSFileProviderSearching <NSObject>
+
+/// Called by the system to retrieve search results for a user search query.
+- (id<NSFileProviderSearchEnumerator>)searchEnumeratorForStringSearchRequest:(NSFileProviderStringSearchRequest *)request;
+
+@end
+
+NS_ASSUME_NONNULL_END
Clone this wiki locally