Hi, I have been trying to build a VST3 plugin using JUCE v7.0.7 on macOS (m1). For some reason, the build always fails when trying to run the juce_vst3_helper.
line 5: 7219 Killed: 9 “$CONFIGURATION_BUILD_DIR/juce_vst3_helper” -create -version “0.2.26” -path “$CONFIGURATION_BUILD_DIR/$FULL_PRODUCT_NAME” -output “$CONFIGURATION_BUILD_DIR/$FULL_PRODUCT_NAME/Contents/Resources/moduleinfo.json”
Command PhaseScriptExecution failed with a nonzero exit code
I have tried running the juce_vst3_helper from the shell and I keep getting the error “zsh: killed”. Does anyone have any ideas on how to fix this issue?
After a day of trial and error, I have finally found out that having Networking Multicast Capability enabled in the Xcode exporter was causing the juce_vst3_helper to fail.
My plugin needs this setting enabled. Is there a way to enable it without causing the juce_vst_helper to fail?
Are you certain about this? I use multicast in my plugins (AAX, VST3, AU) but I don’t have to enable this setting in order for it to work. For iOS the story is different, in which case I do have this entitlement enabled and I had to request permission from Apple to publish with this entitlement. I’m also on JUCE 7.0.7.
ok, thanks @ruurdadema!
From our test it appears that multicast capabilities are required on macOS 15.
Otherwise, our plugin lacks the necessary permissions to communicate.
However, enabling this has caused the VST3 build to fail with the error: Command PhaseScriptExecution failed with a nonzero exit code
I just checked my software on a virtual instance of macOS 15.0.1. It appears to be working fine. I do get a popup requesting to find devices on the local network but I didn’t add anything special to the plist or anything.
Also, I think requesting local network permissions is up to the host, not the plugin. Adding multicast permissions to a plugin doesn’t sound right to me.
What makes you think your plugin requires multicast permissions?
Note that I’m not using dns-sd but plain multicast. If you are in fact using dns-sd then the story might be different, in that case I think you need some other plist key, like NSBonjourServices maybe.
Thanks for you time @ruurdadema
We also develop Standalone Plugin. Without enabling the multicast capability, communication was broken. For the plugin, as you mentioned, the host manages permissions. However, for the standalone version, the permissions popup doesn’t appear.
Everything worked correctly on previous versions of macOS, so we’re still investigating the issue.
In any case, if I need to enable Networking Multicast Capability on macOS, I also need to successfully build the VST3 plugin format.
You might want to have a look at Console.app and look for messages associated with your program. If there is a permission issue there is a good chance Console.app will contain messages about that. Search for the name of your app or the bundle id of the app.
Another thing to try is to reset the permissions for your app, as documented here.
Lastly, just to feed you more info; I just double checked with the standalone plugin runners (the one JUCE provides) on macOS 15, and it works without a hitch. Both sender and receiver trigger popups.
EDIT: just to be clear, I do think VST3 should be able to build when the multicast permissions are added.