Cheapest Way to Create Mac Plugins?

I’m a 25-year C++ programmer, all on Unix/Linux and Windows. I’ve developed a plugin with Juce and want to supply the Windows-using community.

Does anyone cross-compile for Mac on Linux or Windows successfully?

Failing that, what’s the oldest/cheapest Max I could buy to let me build Juce-based plugins?

For instance I see “Macbook Pro 13” Early 2015, 128GB" (disk I assume!) for about $410 on a local auction site. Would that do the job? I assume I can get the compiler and some test DAW for free?

I have a 2009 Mac Mini that I used to do my mac builds on. It’s a PoS and completely horrible to use but it gets the job done - I had to install some extra RAM because it only had 2GB originally which was unusable. You may be limited to older versions of Xcode though (mine can’t be updated past Xcode 8) but other IDEs may work better.

If all you need it for is building, then you may be able to rent a VM machine running mac. I don’t know of any such services myself but I’m sure there are some. You may be limited to how much testing you can do with that however.

1 Like

Can you just ssh in and do things remotely with Putty? I hear it’s Mach/Unix, basically. Or do you have to learn how to drive the GUI?

I have never done this myself but I know a dev with multi platform audio that used a mac mini and wifi, triggered the build from Windows and voila.

This is possible, but I have no more info than this. :slight_smile:

You can definitely SSH to a mac, but I’m not sure if you can do the full remote desktop like you can with Windows?

I use TightVNC to remote control my Mac Mini. ie. a Windows desktop machine is my main platform, and when I need to build/test on the Mac I use TightVNC to remote desktop to it. It is a usable solution if you do not need a performant experience, as there is some lag at times. But, it has been a workable solution for the past 10 years.

You can also use a service like GitHub actions to execute a build natively on Mac and Linux and upload the artefacts for you.

Obviously testing is a bit trickier, but it’s a free solution, and allows the build to be native instead of cross-compiled.

For some inspiration on that route, you can have a look at my Open Source plugin which is built for Windows and macOS via GitHub actions. It’s CMake based, which makes a build like that super simple, but this should also work for Projucer based projects with some extra steps. Just have a look at the .github/workflows folder GitHub - JanosGit/Schrammel_OJD at develop

While this makes building for multiple platforms automatically super easy, you have no chance to test it in a real DAW environment this way, so neither testing (besides automated unit tests) nor debugging is possible with that setup.

1 Like

True. Although you could probably write a script to make the CI machine run pluginval, AUval, and/or the Steinberg validator once it’s finished the build ¯_(ツ)_/¯

Yeah of course, our Jenkins based CI system does that after every build and it’s a good way to catch errors. But especially based on that experience I learned that most of the edge case bugs are triggered either on Windows or on macOS and your first step after seeing that the validation failed on the CI is to run the same test locally under the debugger, so at some point you need the real machine for proper debugging.

1 Like

Yeah that’s true. Debugging without an actual machine to test on is definitely a pain.

While you can build on a Mac VM, I’m not sure if there is an easy way to create the certificates for signing without access to hardware. And you probably need hardware for testing. The machine you listed would probably be fine, or you could pick up an Air or a Mini probably for less.

There’s also AAX, which AFAIK requires a physical iLok to sign on both Mac and Windows, so I’m not sure how a remote solution would work for that.

I did see some online solutions where people got the regular code sign/notarize happen on a Github Actions machine, there are a few “Marketplace” actions for it, including ways to pass the certificates, but it isn’t straightforward.

Look for a late 2012 iMac. It’ll run up to MacOS Catalina and a 27” will let you expand the RAM to 32gb.