Xcode Warning: ‘MIDIEventListInit' is only available on macOS 11.0 or newer

JUCE 8.0.3
I am compiling on MacOS 11.7.10 Big Sur, Intel.

When compiling an AU, I am getting the following warnings in juce_audio_plugin_client_AU_1.mm.

‘MIDIEventListInit' is only available on macOS 11.0 or newer
'MIDIEventListInit' has been marked as being introduced in macOS 11.0 here, but the deployment target is macOS 10.13.0.
Enclose 'MIDIEventListInit' in an @available check to silence this warning

My MacOS Deployment Target (in Projucer) is the default (10.13). What should I be doing?
Do I just put JUCE_APPLE_MIDI_EVENT_LIST_SUPPORTED=0 in the XCode Extra Preprocessor Definitions?

This looks like an issue on our side. I’m not sure why we’ve never seen this before, though - maybe it only appears on a specific compiler version. Which Xcode version are you running?

@reuk xCode 13.2.1.

Thanks. I’m not seeing this on Xcode 14.2, but I’ll try with 13.2.1.
Edit: I can repro with 13.2.1, so I guess this depends on the compiler version after all.

1 Like

In general it is possible to avoid issues like this by using VM’s to build for different MacOS versions - we have set up UTM images (and Parallels on Intel Macs) containing the specific Darwin releases we are targetting, with the latest version of XCode specific to that OS version installed in the VM.

Trying to get earlier versions of MacOS built with the latest XCode is a losing game - Apple are very aggressively using dark patterns to get developers on their latest stuff - so if you want to avoid stress with this in the future, invest in the effort required to put these build systems into their own VM scaffolding. It’ll save you a lot of stress to do this work, up front.

1 Like

Hi, how do you get the images though? I needed to test out something on Catalina a few weeks ago and it was impossible to get an installer…

Its a minefield, but fortunately there are carefully taped paths through it all:

https://mrmacintosh.com/how-to-download-macos-catalina-mojave-or-high-sierra-full-installers/

I’ve had some success with mist in the past, not sure if its still working so ymmv:

1 Like

Not sure whether this is addressed to the JUCE team or not, but just in case: we do test on our oldest-supported and newest-supported Xcode. It’s not really practical for us to test much more than that - certainly we can’t test every Xcode release in the supported range, we just don’t have the time and compute power. In practice, testing the extremes of the range works reasonably well, and it’s rare that there are build issues specific to toolchains in the middle of the range.

Of course, I agree that it’s a good idea to keep older OS versions around to test compiled software.

These warnings should now be resolved on develop:

1 Like