Looking for Xcode (developer) release options

Dear community,

I started a Juce project in my free time just for the fun of it. I´m a medical device engineer and saxophone/EWI player with no contacts at all into the world of music app programmers.

Surprisingly, I finalized my Diatonic Midi Harmonizer project within the last two month and it works like a charm as Midi effect, both AUv3 and VSTv3 within Logic and Garageband.
(Once I finally figured out version hints on parameter…)

I thought about distributing the project and this is where I got stuck eventually.
Are there community/startup options to distribute apps professionally? Are there network options?
I feel like I created a fun and creative performance app and I´m looking forward to do more, as I really enjoyed the creative process.

Are you looking to sell this plug-in to customers or give it away for free?

For selling there are various options. I would recommend moonbase.sh as this is very simple to integrate and they take care of all the hassle.

Giving it away for free is even easier. :slight_smile:

Regardless, to distribute you need to make an installer and sign this with a certificate. This will cost money.

You will also need a website. And you need to do marketing so people know this plug-in exists.

There are marketplaces for selling plug-ins (KVR marketplace, PluginBoutique, MuseHub, etc) that do the marketing / payment handling / website for you.

You can also team up with another developer or a publisher to make your plug-in look more professional and handle all the other stuff.

Congrats on getting your first product to completion!
In addition to the good advice from @kerfuffle , you will want to take a look at the JUCE license agreements, and choose the correct license for your situation. Especially if you decide to sell the plug-in.

Thanks for the replies :folded_hands:

  1. I realized right at the end of the creation process that people will receive a malware warning when compiled for local tests only.
  2. Therefore I could imagine to buy an apple developer license.
  3. I believe that my approach has potential but it needs stronger features such as intelligent guide tone harmonies to stand out. I could therefore imagine to release it for free as it is. But I’m annoyed by 1. and 2. in that case :sweat_smile:

I might have overlooked available options, such as joining a developer team. Even if it’s non commercial in the beginning.
I’m also thinking about moving from MAC to windows to release the vst.

Congratulations on your hard work coming to a good stage!

One thing that I think is important to accommodate, this early in your game, is the separation of development environments and build/release environments.

Right now you’re probably using your personal development machine for all the coding, building, and production of a distributable.

Take some time at this point to step back, and build yourself another environment, which you only use for producing customer-targeted distributables.

The way you should do this (imho) is to get yourself two VM’s - one for MacOS builds, and one for Windows builds. Set them up to do one thing, and one thing only: build, package, sign and notarize your plugin. Join your development environment with the ‘builder’ environment through a git repository - that way, you can develop freely and independently from the distributable/packaging environment, and your VM’s will be ready to deliver to customers.

This might seem like a lot of work, but it will let you separate concerns - development and release - in a clean and productive manner.

This might also mean you have to convert your project to use CMake, and then do all the things to get CMake builds working properly on your builder VM’s for both MacOS and Windows. Do not be daunted by the effort to do this - it can be done, and its actually quite simple if you take each step methodically. Convert the project to CMake, add platform-specific configuration to your CMake, get your development environments set up in the builder VM’s, get them building the plugin successfully, and then move on to packaging.

You can learn a lot from @sudara’s github actions in his pamplejuce project (GitHub - sudara/pamplejuce: A JUCE audio plugin template. JUCE 8, Catch2, Pluginval, macOS notarization, Azure Trusted Signing, Github Actions) - or indeed, you could use pamplejuce as a base into which you can refactor your project (maybe its as simple as copying your Source/* files into a pamplejuce project fork, and then updating the resources for your needs .. who knows ..) - but either way, pamplejuce is a good place to start, since github-actions preclude the need to set up an entire VM machine, and you could do your releases directly from Github.

Either way, do not be intimidated by this phase of things - take it as an objective ‘next step’ in your development process to build the pipeline. I started with a pamplejuce-derived scaffolding project, and then once I got it working, I converted it to use my own locally administered VM’s instead of relying on Github - the only painful aspect of this was understanding the certification and notifcation heuristics for both Windows and MacOS, and then writing a script for each of the stages - build, packaging, signing, notarization - with the end result being .exe/.pkg redistributables which pop out of the end of my automatic pipeline whenever I trigger a ‘release build’ from my development environment.

But yes, either way you look at it, you will need to invest time/materials/money in the developer licensing that is a prerequisite for “authentic” notarization from Apple, and equivalent certification on the Windows builder side of things. But, either way, do check out pamplejuce if you haven’nt, especially the .github/workflows/build_and_test.yml file, which describes a lot of the steps you should take in order to produce proper redistributables.

If you need help with any of this, reach out - a lot of us have taken these steps with success …

2 Likes

:folded_hands: will look into it.
No pressure on my side, I’m doing it to learn and grow. Thank you so much for the support. VM seems feasible. I’m an engineer, I’ve used vms more than once to make old things work :sweat_smile:
And yes, for now I’ve worked locally with a backup copy of the work after each coding session.