macOS: plugins in sandboxed DAW

Hi,
happy new year!

First of all it seems that the Projucer does not provide the temporary exception entitlements.

Don’t we miss at least
com.apple.security.temporary-exception.files.home-relative-path.*
com.apple.security.temporary-exception.files.absolute-path.*
for preset file handling (as unfortunately there is no generic DAW preset handling and it seems that its the plugins responsibility to invent the wheel here).
and:
com.apple.security.temporary-exception.shared-preference.*
to allow preference file access?

Our plugins communicate with a controlling hardware device via Apples IOHIDDevice API, which according to

should be sandbox excepted by the com.apple.security.device.usb key, which I have test-wise placed and enabled, but communication can’t be established from inside a sandboxed DAW (checked with Ableton Live).
Any expertise on this?

Thanks & cheers

This implementations for com.apple.security.temporary-exception.files.home-relative-path and com.apple.security.temporary-exception.files.absolute-path in Projucer are not quite right, they should be String values instead of Booleans. See here for more info:

https://developer.apple.com/library/archive/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/AppSandboxTemporaryExceptionEntitlements.html#//apple_ref/doc/uid/TP40011195-CH5-SW1

Please make the change.

Thanks.

@raketa:

I’m in a similar spot: we’re making a plugin (AU / VST3) that can be controlled through a control surface over IOHIDDevice (using hidapi). Some users are reporting the controller not connecting to the plugin, especially on newer hardware / macos’s. I can’t seem to reproduce it myself.
Have you gotten anywhere?