Building the R2024 SDK on macOS

The procedure for R2024 has changed very slightly from that for R23-R2023. The SDK documentation for R2024 explains what to do really well, and can be found here: https://developers.maxon.net/docs/cpp/2024_0_0/page_maxonapi_dev_macos.html

There are one or two small points which could benefit from some amplification, however.

1. Development environment

The required environment for R2023 was XCode 12.2 but it is also possible to use XCode 13.x. This is good news because now you only need one version of XCode for building plugins for R2023 and R2024 (and possibly R2025 as well), which is a real plus if you have limited storage space on your Mac, as I do.

The downside is that XCode 13.x requires a minimum of macOS Monterey, so if you were using Big Sur or earlier, you need to upgrade.

2. Python

The SDK docs are quite specific about this but it can be misinterpreted so you think that the section on Python only refers to developing plugins in Python. This isn't so. The XCode projects make use of Python scripts during the build process, so if macOS doesn't have a Python interpreter installed, the build will immediately fail the moment you try to build the plugin. The SDK instructions show you how to install Python on the Mac when using Monterey (required for XCode 13.x, remember). They are easy to follow but one command to execute is this:

mkdir /usr/bin/local

Executing this might generate a 'permission denied' error. If it does you can do this:

sudo mkdir /usr/bin/local

This will require your Mac password, which won't be echoed to the terminal (a bit disconcerting, that!). You might also wonder, as I did, what this command will do if the folder already exists and contains stuff you wouldn't want to lose. In that case, nothing happens at all - there is no error report and no success report either. Essentially, if the folder exists, mkdir does nothing, and certainly doesn't remove any existing files.

3. Build targets

Anyone who has used XCode will have been caught by this before, but the SDK examples contain numerous modules and frameworks, each of which has at least one build target. When the project is first loaded there is a good chance that one of the build targets is selected. If you then try to build the project, XCode will build just that one target. Make sure that 'All Targets' is selected in the list of targets to ensure that the whole set of plugins is built.

Page last updated September 27th 2023