VST3 Manifest Help

This thing is a pain in the arse. I’ve lost many hours of my life to it now!

It seems to be failing, but then cmake immediately deletes the binary so it’s impossible to re-run it to find out why. And in some cases it doesn’t seem to print any error messages.

Sample useless output with full debugging is here:

./juce_vst3_helper -create -version 0.99 -path "/Volumes/Build/Jenkins/workspace/XBassEnhancer OSX/cmake.build/BassEnhancer_artefacts/Release/VST3/BassDrive.vst3" -output "/Volumes/Build/Jenkins/workspace/XBassEnhancer OSX/cmake.build/BassEnhancer_artefacts/Release/VST3/BassDrive.vst3/Contents/Resources/moduleinfo.json"
Live child 0x600001230050 (BassEnhancer_artefacts/Release/VST3/BassDrive.vst3/Contents/MacOS/BassDrive) PID 37475
Reaping losing child 0x600001230050 PID 37475
make[2]: *** [BassEnhancer_artefacts/Release/VST3/BassDrive.vst3/Contents/MacOS/BassDrive] Killed: 9
make[2]: *** Deleting file `BassEnhancer_artefacts/Release/VST3/BassDrive.vst3/Contents/MacOS/BassDrive'```

Any chance error reporting could be improved.

Also - anyone know how to stop make deleting the thing if it fails will earn a beer.

Update

To stop it deleteing the file look for the .DELETE_ON_ERROR: line in the cmake generated make files and remove that.

Here’s the fault with my vst3 helper now!

jenkins@astro cmake.build % ./juce_vst3_helper -create -version 0.99 -path "/Volumes/Build/Jenkins/workspace/XBassEnhancer OSX/cmake.build/BassEnhancer_artefacts/Release/VST3/BassDrive.vst3" -output "/Volumes/Build/Jenkins/workspace/XBassEnhancer OSX/cmake.build/BassEnhancer_artefacts/Release/VST3/BassDrive.vst3/Contents/Resources/moduleinfo.json"
zsh: killed     ./juce_vst3_helper -create -version 0.99 -path  -output
jenkins@astro cmake.build %

Yummy! Why?! Error 137 apparently.

Right, found this eventually:

------------------------------------
Translated Report (Full Report Below)
-------------------------------------

Process:               juce_vst3_helper [62548]
 Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGKILL (Code Signature Invalid))
Exception Codes:       UNKNOWN_0x32 at 0x0000000103d68000
Exception Codes:       0x0000000000000032, 0x0000000103d68000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    Namespace CODESIGNING, Code 2 

So something changed, I think, in a recent JUCE and that’s broken our build system. I’ll try and squeeze a codesigning step in here as wel, but we didn’t previously have one. Maybe we can do this manifest step outside of cmake where we normally do our codesigning.

Ok - so I think this is because we were doing symbol generation, saving the symbols to a dsym and then stripping the binary thus invalidating the signature.

I think this is the second time we’ve had problems with the helper though where it’s had a problem and failed to report the error. It was something different last time and just some random code path in steinbergs tool where they’d not bothered to report an error message.

Very frustrating.

Would be nice if we could get this to report useful errors somehow!

I was having issues with the manifest and I was getting copy errors that weren’t giving me much to work with.

The solution was to attach AudioPluginHost for debugging and drag and drop the project folder onto the window and then it gave me a proper callstack.

Once I fixed that stuff, the manifest generated and all was well.

Happened a few times recently.