Unable to use File Provider Extension on MacOS catalyst

I'm unable to API such as NSFileProviderManager on MacOS catalyst although the developer site says this extension is supported. https://developer.apple.com/documentation/fileprovider

I've attempted to build a iOS framework to import into the catalyst target with no luck (I thought Catalyst was against the iOS API — maybe not?). Also attempted building a MacOS framework to import (maybe it's the other way around) but no luck.

Has anyone found a workaround? Building for "MacOS for iPad" does work but isn't ideal for the UI.

Answered by DTS Engineer in 850914022

I’m not sure I completely understand your question but I want to stress that Mac Catalyst is a different platform than both iOS and macOS [1]. If you want to build a framework to use in a Mac Catalyst app, you have to build it for the Mac Catalyst platform.

If you’re using Xcode, the best place to start is with the iOS > Framework template. In the target editor’s General > Supported Destinations list, you’ll see an entry for Mac Catalyst. If you select a run destination of Any Mac (Mac Catalyst, arm64, x86_64) and build the fraemwork, you’ll see this:

% vtool -show-build Debug-maccatalyst/FFF.framework/Versions/A/FFF
Debug-maccatalyst/FFF.framework/Versions/A/FFF (architecture x86_64):
Load command 9
      cmd LC_BUILD_VERSION
  cmdsize 32
 platform MACCATALYST
…
Debug-maccatalyst/FFF.framework/Versions/A/FFF (architecture arm64):
Load command 9
      cmd LC_BUILD_VERSION
  cmdsize 32
 platform MACCATALYST
    minos 18.5
      sdk 18.5
   ntools 1
     tool LD
  version 1167.5

Note how there are two architectures, Intel (x86_64) and Apple silicon (arm64), and both are for the Mac Catalyst (MACCATALYST) platform.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

[1] For the definition of platform, see An Apple Library Primer.

Accepted Answer

I’m not sure I completely understand your question but I want to stress that Mac Catalyst is a different platform than both iOS and macOS [1]. If you want to build a framework to use in a Mac Catalyst app, you have to build it for the Mac Catalyst platform.

If you’re using Xcode, the best place to start is with the iOS > Framework template. In the target editor’s General > Supported Destinations list, you’ll see an entry for Mac Catalyst. If you select a run destination of Any Mac (Mac Catalyst, arm64, x86_64) and build the fraemwork, you’ll see this:

% vtool -show-build Debug-maccatalyst/FFF.framework/Versions/A/FFF
Debug-maccatalyst/FFF.framework/Versions/A/FFF (architecture x86_64):
Load command 9
      cmd LC_BUILD_VERSION
  cmdsize 32
 platform MACCATALYST
…
Debug-maccatalyst/FFF.framework/Versions/A/FFF (architecture arm64):
Load command 9
      cmd LC_BUILD_VERSION
  cmdsize 32
 platform MACCATALYST
    minos 18.5
      sdk 18.5
   ntools 1
     tool LD
  version 1167.5

Note how there are two architectures, Intel (x86_64) and Apple silicon (arm64), and both are for the Mac Catalyst (MACCATALYST) platform.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

[1] For the definition of platform, see An Apple Library Primer.

Ah I see, I assumed Mac Catalyst was either the iOS or MacOS SDKs under the hood — didn't realize it was a bespoke platform.

Looks like the API I need, NSFileProviderReplicatedExtension, is explicitly unsupported on Mac Catalyst.

I'll look into porting my iOS / Mac Catalyst app into a separate MacOS version as well. Thanks!

Unable to use File Provider Extension on MacOS catalyst
 
 
Q