Xcodebuild not creating binaries with Projucer created .xcodeproj file

Hello Everyone

I’ve been dealing with this issue on and off for the last few months as I’ve been trying to set up a better method for handling automatic releasing for some plugins. The issue that I am running into is that when I call xcodebuild in a shell script like this:

# clean the build files
xcodebuild clean -project "$plugin_name.xcodeproj" -configuration Release -scheme "$plugin_name - All" CONFIGURATION_BUILD_DIR="ReleaseBuild"
# compile the VST3 and AU (-alltargets builds for all supported architectures)
xcodebuild -project "$plugin_name.xcodeproj" -configuration Release -scheme "$plugin_name - All" CONFIGURATION_BUILD_DIR="ReleaseBuild"

It will give me the standalone, shared code file, and aliases to the .component and .vst3 files, but the issue is that while the aliases are generated, it doesn’t seem like they actually point to anything in my case.

One note, when the build process completes, we do get some terminal output showing that there are directories that a .vst3 and .component file might be in, but in this case they are located in a root directory that is not accessible by me (even through sudo):

Touch /bar/root/Library/Audio/Plug-Ins/VST3/test.vst3 (in target 'test - VST3' from project 'test') 
cd /Users/user/develop/plugins/test/Builds/MacOSX
/usr/bin/touch -c /var/root/Library/Audio/Plug-Ins/VST3/test.vst3

There’s a similar one for the .component file as well.

I’m sure there’s some caveat I am missing when doing this; My only real experience working on macOS is getting Mac versions of these plugins working, so I’m not aware of all of this operating system’s quirks.

Basically, my question boils down to this: Where am I supposed to find the compiled versions of the plugins (or if I’m doing something incorrectly, what is it)?

Thanks

You can use DSTROOT to specify a custom root directory.

For example:

$plugin_install_dir="InstallDir"
xcodebuild -project "$plugin_name.xcodeproj" -configuration Release -scheme "$plugin_name - All" DSTROOT=$plugin_install_dir

Then you’ll find the plugins in:
InstallDir/var/root/Library/Audio/Plug-ins/

You could also try disabling the post-build copy step in the Projucer. I think this will cause the built products to remain in the build directory, rather than being installed and then symlinked back into the build directory.