-
Notifications
You must be signed in to change notification settings - Fork 542
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