Thanks for being a part of WWDC25!

How did we do? We’d love to know your thoughts on this year’s conference. Take the survey here

File Provider supportedServices

I am developing a FileProvider on Mac OS. I want to support Coauthoring Via Microsoft. As per Microsoft's documentation, the supportedServices function should be called via the OS when an Office file is opened. I have overridden this function in my fileprovider extension, but fail to see this function getting called.

Has anyone else had any experience with coauthoring integration for File Provider and could give some advice?

I am mostly working from the given documentation from Microsoft https://learn.microsoft.com/en-us/microsoft-365/cloud-storage-partner-program/plus/sync-client/metadata

Answered by DTS Engineer in 844334022

Has anyone else had any experience with coauthoring integration for File Provider and could give some advice?

A few different suggestions:

  • I would start doing your own "basic" implementation before you try and get deal with the microsoft side of this. There are a lot of details involved in this process and those details are much easier to debug when you control both "ends" of the connection.

  • To be clear about the "flow" here, an app would call NSFileManger.getFileProviderServicesForItemAtURL, which would (eventually) cause the system to call supportedServiceSourcesForItemIdentifier in your File Provider extension. However, note that this is just the START of the process which then build out the XPC communication channel which you communicate through.

  • The sample project found here implements the all of this. Look in the file "Extension+Servicing.swift" for the extension side of this process.

  • As an easy to overlook detail, the "restricted" property is optional and defaults to "true". That needs to be set "false" for your service to be accessible by processes outside the FileProvider "system"*.

*The API was originally created to simplify communication between the FileProvider Extension and it's "owning" app and was later expanded to other processes.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

Accepted Answer

Has anyone else had any experience with coauthoring integration for File Provider and could give some advice?

A few different suggestions:

  • I would start doing your own "basic" implementation before you try and get deal with the microsoft side of this. There are a lot of details involved in this process and those details are much easier to debug when you control both "ends" of the connection.

  • To be clear about the "flow" here, an app would call NSFileManger.getFileProviderServicesForItemAtURL, which would (eventually) cause the system to call supportedServiceSourcesForItemIdentifier in your File Provider extension. However, note that this is just the START of the process which then build out the XPC communication channel which you communicate through.

  • The sample project found here implements the all of this. Look in the file "Extension+Servicing.swift" for the extension side of this process.

  • As an easy to overlook detail, the "restricted" property is optional and defaults to "true". That needs to be set "false" for your service to be accessible by processes outside the FileProvider "system"*.

*The API was originally created to simplify communication between the FileProvider Extension and it's "owning" app and was later expanded to other processes.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

Thanks! This solved my issue.

You're very welcome.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

File Provider supportedServices
 
 
Q