Skip to content

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.
Clone this wiki locally