I am interested in sandboxing a Symbiosis VST. To start off, I have sandboxed AULab as follows:
This seemed to work easily. I modified the com.apple.security.temporary-exception.audio-unit-host entitlement from True to False to True to show that this enables me to toggle the question about lowering/raising security levels to allow me to load unsandboxed AUs, thereby effectively disabling the sandbox or enabling it.
I've then attempted to edit my plist as described here:
I tried adding both versions of the sandboxing, one where I set the sandboxSafe key, and another where I add a resourceUsage key. Neither of these seemed to do a lot for me. I added a breakpoint at the SymbiosisEntry and this never hits when I try to load my AU within the sandboxed AULab. AULab gives me a -3000 error when trying to load the AUs - I don't know what this means.
I've compiled using the 10.9 SDK. My VST is wrapped using the approach where Symbiosis is embedded into the VST.
My guess as to why I am getting nowhere on load in AULab is that this is due to the changes to the dispatching of AUs in Lion being required when trying to loaded by a sandboxed host (the component manager is not being used anymore):
Maybe this means Symbiosis wrapped plugins cannot support a fully sandboxed environment until they use the new entry mechanism. This is supported by a post from Blue Cat here:
If I've followed this correctly, I think it means it's quite important to update to the new Lion AU API dispatching mechanism so that Symbiosis will allow us to sandbox plugins without having to rely on the host declaring the temporary-exception entitlement. Is that a difficult thing to do, and is it expected to be coming along the pipe, and if so when? It would be great to get the wheels in motion now before Logic X is sandboxed with the exception entitlement causing users to complain, and then later when the exception is removed and we absolutely must sandbox, to be ready with prepared products. I got nowhere looking for the COMPONENT_ENTRY macro which the Lion API upgrade note above mentions, so an pretty lost in terms of doing this myself, and I wouldn't really want to deviate from the main tree anyway.
Matt
ps. I also tried in GarageBand X, no difference really.