Building for release - from M1 to other macs


I’m in the process now of getting some user feedback for my plugins but I am having trouble getting them to run no a few of their machines. I have an M1 Air with the latest MacOS 13.5 but one of my testers is running a much older Air with MacOS 10.14.
I have built my plugins in release mode.
These are the only settings I’ve changed in the projucer in the release section.
The default deployment target was 10.13 but I typed it in anyway.
I chose Standard 64-bit because if I didn’t then none of my plugins would pass any pluginval tests. I found on another fourm post that this would allow me to build a universal binary that works on arm and intel macs. Which is why I set it as so in Xcode:
Beyond this, I am not sure.

When i got my tester to run auval it exited immediatly with error -1.
Do people do anything special before building their plugin for release to get it working on other machines?

I have a dropbox link with all the vst3 and component files that I’d be happy to share if anyone knows more about diagnosing

I would assume that you can actually open the AU in a DAW on your machine.

When i got my tester to run auval it exited immediately with error -1

IIRC, pluginval will run auval for AU. Unfortunately, I don’t know how to debug with auval. But it does seem problematic.

Did pluginval exit immediately or at the time executing auval?

Have you run pluginval for VST3? Does it pass all tests at level 10?

I would also suggest using GitHub actions to release your plugins (but keep an eye on the billing :face_with_monocle:

pluginval (level 10) and auval pass all tests on my machine. The pluginval binary is for intel and its always failed the first test if I build for arm. When I started compiling as “Any Mac (Apple Silicon, Intel)” I started passing all the test for pluginval and auval.

Do I have to codesign it in any way so OS doesnt throw a hissy fit?

I see this in the projucer:
When I try to download a vst3 from my dropbox link my OS quarantines it.

I see. Your plugin is completely fine on your computer but it fails immediately on another machine.

Did you code-sign and notarize your plugin?

Yes. Please read this useful blog. Although for a different purpose, the logic is similar.

legend, thank you

Ok I have read through it a couple times but one thing does not seem clear to me. I’m not sure what it refers to when talking about “your CI” or “adding secrets”

These are Github-related terms:

Lots to think about, do you use this PAMPLE juce template then? not sure if its worth porting all my code over.

I used an older version of that repo. CI makes my life much easier :laughing: