I have a plugin authorisation system that was working fine (and still does in most cases) but I recently learnt that it doesn’t function as expected in the latest version of Logic on Monterrey. It does work in earlier versions of Logic on older operating systems (I was testing on Big Sur).
For now the problem seems to only affect Logic, not other hosts, so the problem isn’t the MacOS update.
The authorisation uses the
ChildProcess class to launch an external app, passing it a few arguments to start the process automatically in that app. But now it only opens the app and doesn’t seem to pass the additional arguments.
I’m assuming this is a “security update” to Logic that is removing the additional arguments.
Here is the main part of code responsible for launching the authoriser (slightly edited):
juce::ChildProcess cp; juce::StringArray command; command.add("/usr/bin/open"); command.add("-a"); command.add("Authoriser.app"); command.add("-n"); command.add("-W"); command.add("--args"); command.add("-activate"); command.add("-product"); command.add("product name"); cp.start(command);
As far as I can tell, everything from “–args” onwards is just ignored.
Has anybody else run into this problem and found a workaround? I’m a bit stumped and frustrated.