GarageBand user file location different than VST/AAX?
-
I'm running into a situation involving GarageBand that you guys might know the solution to.
When you run your plugin for the first time, it extracts data (Settings/User Presets/Expansions/etc..) to ~/Library/Application Support/Company/Plugin
I'm working with my first plugin that doesn't have embedded resources, so I'm dropping my .dat files in there. Not a problem with Cubase/Protools/Reaper.
When I load my AU plugin in GarageBand for the first time, it says my .dat files can't be located. When I looked closer at the directory in the error message, it was different than ~/Library/Application Support/Company/Plugin.
It extracted the plugin data to ~/Library/Containers/com.apple.garageband10/Data/Library/Application Support/Company/Plugin
I thought at first it was just a redirect from ~/Library, but that's not the case.is this consistent with everyone else? If so, how are you dealing with this for updating presets and such? Are you just preemptively adding this location to your installer? Does this happen with Logic as well? (I don't have a copy of logic to test)
-
The one thing that Garageband does differently than any other host on the entire planet is to apply Sandboxing which means that the plugins will not be able to access the normal filesystem but use a container just like on iOS ("Every App is an island") as root file. There were rumours about Apple applying that to Logic in some time in the future, but it's unlikely to happen unless they want to jeopardize their professional DAW and turn it into a bullshit app like GarageBand.
The only exception (don't ask why) is the
~/Music
folder (which is why the sample location defaults to this place). Now there is a preprocessor macro in HISE calledENABLE_APPLE_SANDBOX
which moves the entire app data folder from the~/Library/Application Support/Company/Product
to~/Music/Company/Product
. If you add this to your project compile flags you just need to make sure that the installer copies the file to the music folder instead of the default one.Still won't solve your problem of installing to the global and user domain at the same time :)