VST Plugin Hosting not working with Hardened Runtime

EDIT: Found the solution, leaving this here if anyone has the same problem.
Solution is to enable the Hardened Runtime Option “Disable Library Validation”

Hey!
By turning on hardened runtime in the Projucer, it disabled the possibility to host VST3 plugins in my JUCE app:

 // The plugin NEEDS to provide a factory to be able to be called a VST3!
 // Most likely you are trying to load a 32-bit VST3 from a 64-bit host
 // or vice versa.
 jassert (factory != nullptr);
 return factory;

This assert only hits with hardened runtime enabled, which seems to block the external plugin.

Is there anything I’m missing here, have to setup in the projucer etc.?

Any help is appreciated

2 Likes

I just ran into this as well. Thanks for the solution!
For me it worked for some plugins, but others would crash my app with EXC_BAD_ACCESS (SIGKILL (Code Signature Invalid)).
I checked a few other hosts (Bitwig and Waveform) and found that they add the com.apple.security.cs.allow-unsigned-executable-memory entitlement. When I added that I could load all my VST3s.
In Projucer this is called “Allow Unsigned Executable Memory”.

When checking the signature on the failing plugins I found that they didn’t have the hardened runtime flag enabled, while the working ones did.

1 Like