Archiving multiple VST3 plug-ins from an Xcode Workspace fails due to multiple juce_vst3_helper executables

Hi,

I ran into a problem archiving a Workspace with multiple VST3 plug-in targets in Xcode 15. I’ve found a workaround by modifying Projucer, so I’m submitting a patch here.

Here’s my problem:

We are building a suite of plug-ins, apps and a static library using an Xcode Workspace file. Our plug-ins include VST3 targets, so each one is trying to build juce_vst3_helper. When archiving with Xcode or xcodebuild, the INSTALL_PATH is used as a destination for this executable in the Intermediates directory. To Xcode it appears that each VST3 is trying to put a file in the intermediates directory under usr/local/bin/juce_vst3_helper. Xcode 15, at least, calls this an error, one per project that has a VST3 target.

The best workaround I found is to use the project name for the VST3 Manifest Helper target’s INSTALL_PATH. For our release builds we export the Xcode projects from the Projucer files, and so the only way to modify the INSTALL_PATH was to modify the Projucer exporter.

I also tried s.set ("SKIP_INSTALL", "YES"); but that didn’t work for me.

In juce_ProjectExport_Xcode.h, starting at line 1818 insert:

             if (type == Target::VST3Helper)
            {
                 s.set ("INSTALL_PATH", singleQuoted ("$(PROJECT_NAME)"));
            }
            else if (installPath.isNotEmpty())
            {

I hope this helps to find a solution or anyone who is dealing with this. Given that it probably started back in 7.0.6 when the helper was introduced, I have to assume we are doing something unique here. But just in case, here it is.

Is this a custom Xcode Workspace file? I’ve never run into issues building multiple VST3 plugins using CMake.

Yes, we made the workspace. This project started quite a while back, I think before cmake was an option. And I think it comes down to an install step that Xcode archiving does.