AU Plugin sandboxed on Catalina

We’re seeing a weird problem on macOS Catalina: One of our AU plugins is sandboxed even though it is not configured to be sandbox-ready. Here’s what I did:

  1. Build AU plugin, properly signed with a “Developer ID Application” zertificate
  2. Open plugin in Reaper
  3. Plugin opens just fine, no error messages
  4. A directory ~/Library/Containers/<bundleIdentifier>.<pluginName>AUv3/ is created and all files accessed from the AU plugin are located there in a subfolder that consists partially of symlinks, partially of actual folders and files (those are the files exclusive to the sandbox environment)

I know that this is a normal and expected behaviour of sandboxed plugins, however, the plugin isn’t configured to be sandboxed. The Info.plist contains the temporary-exception.files.all.read-write key in the resourceUsage section.

Also, our other AU plugins don’t behave like this.
What’s going on here? How could we fix this?

1 Like

<bundleIdentifier>.<pluginName>AUv3 is an AUv3 plugin, not an AU plugin. AUv3 and AU are not the same thing. AUv3 plugins are sandboxed by default (and might even have to be sandboxed).

An AU plugin has the extension .component and will be installed under ~/Library/Audio/Plug-Ins/Components/ by default.

McMartin, thank you for the response!

Actually, it’s not a AUv3 plugin, it’s a .component. I too was surprised to see the AUv3 suffix on that folder. But the folder was created exactly when I loaded the plugin into Reaper and I can tell that it can’t access the actual folders of the system because our copy protection isn’t working. It’s not reading the existing files from the Application Support folder. It recreated them in that Containers/ folder. That’s why I looked closer in the first place.

Could this be a problem of Reaper - maybe it’s trying to load the plugin as AUv3 by accident? But then why would be plugin load at all?

I am experiencing the same with a plugin on Big Sur 11.3.1 with “Final Cut Pro”. I switched AUv3 build off in Projucer and did a Build clean just in case.
When printing the file I access via:

    return File::getSpecialLocation (File::userApplicationDataDirectory)
#ifdef JUCE_MAC
    .getChildFile ("Application Support")
#endif
    .getChildFile ("ACME");

In the folder ~/Library/Containers/com.ACME.ACMEpluginAUv3/Data/Library/ACME/ I find a few sym-links. How can I make the necessary symlink to my application support?

I tried to manually add a sym link, but the file seems not readable through the symlink. Otherwise I would have the installer create that link.

Has anybody an idea how to access a folder inside Application Support folder from a plugin?