-
Notifications
You must be signed in to change notification settings - Fork 516
FileProvider macOS xcode14.0 beta2
Manuel de la Pena edited this page Aug 29, 2022
·
3 revisions
#FileProvider.framework https://github.com/xamarin/xamarin-macios/pull/15777
diff -ruN /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderManager.h /Applications/Xcode_14.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderManager.h
--- /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderManager.h 2022-05-31 15:03:57.000000000 -0400
+++ /Applications/Xcode_14.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderManager.h 2022-06-17 11:26:26.000000000 -0400
@@ -121,8 +121,7 @@
Before accessing the content of the returned URL, the caller must call `-[NSURL startAccessingSecurityScopedResource]
on the returned URL and call `-[NSURL stopAccessingSecurityScopedResource]` when done accessing the content.
- On macOS, the returned URL grants read-write access to the user visible location for the corresponding
- item. On iOS, the the returned URL grants read-only access to the user visible location.
+ The returned URL grants read-write access to the user visible location for the corresponding item.
On iOS, for replicated domains, the extension process will never be granted access to the user
visible location, this function will always fail with `NSFileReadNoPermissionError`.
diff -ruN /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderReplicatedExtension.h /Applications/Xcode_14.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderReplicatedExtension.h
--- /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderReplicatedExtension.h 2022-05-31 15:03:57.000000000 -0400
+++ /Applications/Xcode_14.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FileProvider.framework/Headers/NSFileProviderReplicatedExtension.h 2022-06-17 15:29:30.000000000 -0400
@@ -34,9 +34,11 @@
lost, for example following the restoration of a backup, or the migration
to a new device.
- 2. Two directories are merged together. Each child resulting of the merge
- may be recreated with the mayAlreadyExist option. This allows the
- extension to recursively merge directories.
+ 2. Two directories are merged together, due to the extension returning
+ the same itemIdentifier for both directories on the createItem completion handler.
+ Each child resulting of the merge may be recreated with the
+ mayAlreadyExist option. This allows the extension to recursively merge
+ directories.
The Extension should assess whether the item could actually be a disk
representation of an already existing item.
@@ -351,8 +353,9 @@
downloads for specific applications.
The extension can set an array of strings into the UserDefault key
- "NSFileProviderExtensionNonMaterializingProcessNames". A process whose name is an exact match for an
- entry in this array will not be allowed to fetch items in the extension's domains.
+ "NSFileProviderExtensionNonMaterializingProcessNames". A process whose executable's filename on disk is an
+ exact match for an entry in this array will not be allowed to fetch items in the extension's domains. The comparison
+ is case sensitive.
In macOS 11.0 and later, this list will be checked when a download is initiated through a POSIX filesystem call.
In macOS 11.4 and later, this list will also be checked for downloads initiated through file coordination.
@@ -439,6 +442,10 @@
set of stillPendingFields in its completion handler. In that case, the system will
attempt to modify the item later by calling modifyItem with those fields.
+ The filename and contents fields should be synced together.
+ If synced independently, files may appear corrupted on other devices, due to
+ a mismatch between the file extension and the actual file data.
+
If a field in the returned createdItem does not match the itemTemplate, and is
not in the list of stillPendingFields, the value from the createdItem will be
propagated to the disk. If the content of the item as described by createdItem
@@ -575,6 +582,10 @@
set of stillPendingFields in its completion handler. In that case, the system will
attempt to modify the item later by calling modifyItem with those fields.
+ The filename and contents fields should be synced together.
+ If synced independently, files may appear corrupted on other devices, due to
+ a mismatch between the file extension and the actual file data.
+
Starting in macOS 12.0, if the set of stillPendingFields returned by the provider is
identical to the set of fields passed to modifyItem, then the system will consider that these fields
are not supported by the provider. The system will not send these fields to the provider again,
@@ -1233,8 +1244,9 @@
downloads for specific applications.
The extension can set an array of strings into the UserDefault key
- "NSFileProviderExtensionNonMaterializingProcessNames". A process whose name is an exact match for an
- entry in this array will not be allowed to fetch items in the extension's domains.
+ "NSFileProviderExtensionNonMaterializingProcessNames". A process whose executable's filename on disk is an
+ exact match for an entry in this array will not be allowed to fetch items in the extension's domains. The comparison
+ is case sensitive.
In macOS 11.0 and later, this list will be checked when a download is initiated through a POSIX filesystem call.
In macOS 11.4 and later, this list will also be checked for downloads initiated through file coordination.
- README
- xcode13.0 Binding Status
- xcode13.1 Binding Status
- xcode13.2 Binding Status
- xcode13.3 Binding Status
- xcode13.4 Binding Status
- xcode14.0 Binding Status
- xcode14.1 Binding Status
- xcode14.2 Binding Status
- xcode14.3 Binding Status
- xcode15.0 Binding Status
- xcode15.1 Binding Status
- xcode15.3 Binding Status
- xcode15.4 Binding Status
- xcode16.0 Binding Status
- xcode16.1 Binding Status
- xcode16.2 Binding Status