OS X deployment settings


I am about to publish my first VST and want to ensure that I set the OS X build settings appropriately.

Specifically I am unsure of the optimal settings for the following Xcode settings, which are all “default” in a new Projucer project:

  • OSX Base SDK Version (e.g. 10.5 SDK … 10.12 SDK)

  • OSX Deployment Target (e.g. 10.5 … 10.12)

  • C++ Language Standard (e.g. C++ 98, C++ 11, C++ 14)

  • C++ Library (e.g LVMM libc++, GNU libstdc++)

I realise there are probably no “correct” values for those settings, but my goal is to publish a plugin that is backwards compatible with older versions of OS X to a reasonable degree. Can anyone suggest which values can be left at “default”, which need to be explicitly set, and what are sensible settings to use?

I am using Xcode 8, OS X 10.12 and Juce 4.3.1


If it’s your first release,

  • OSX Base SDK , leave it to default
  • OSX Deployment, lowest version with modern capabilities is 10.7.
    Many companies that care less for backwards nowadays goes with 10.9.
  • C++ Language Standard, depends on your code.
    Once you set it the 10.7 and above your C++ Library would switch to libc++ (as it is set to default).

The most important things are:

  • Make sure you preset format is future proof. (in case you add something for example).
  • I’d suggest turning JucePlugin_AUHighResolutionParameters which isn’t trivial but modern enough and provides greater parameter resolution for AU. something that in the future you’d regret not enabling.
    (read about it prior to adding it of course…)


Thanks ttg, that is exactly the sort of detailed reply I was hoping for.

There are no preset loading/saving capabilities in my plugin, so that is one less thing for me to worry about at this stage!

I haven’t come across JucePlugin_AUHighResolutionParameters before, so I will read up on that. Thanks for the tip.