-
Notifications
You must be signed in to change notification settings - Fork 32
macOS Compatibility Advice
This page gathers all you need to know to properly support the widest array of macOS customer setup.
- DO Support both
x86_64
andarm64
architecture. You can use different--compiler
and--compiler-x86_64
for both. - DO support the Audio Unit v2 format (Logic is very popular).
- DO create a macOS installer.
- DO use notarization.
- DON'T target macOS with DMD. Use LDC!
-
Currently recommended: Last Update: 5th Dec 2023
- LDC 1.28 to 1.40 for
arm64
for macOS 12.0+ support. - LDC 1.28/1.29 for
x86_64
for macOS 10.15 or earlier. - Using the
dplug-build --compiler-x86_64
flag to use two different compilers and stitch them in an Universal Binary. - Build with Xcode 13 to Xcode 14. Xcode 15 is untested yet.
- Use Dplug v14.3 or later to have the
--compiler-x86_64
flag and various macOS fixes. Else, build all with LDC 1.28/1.29. - Use Monterey to Sonoma as build platform.
- Do not enable AVX instructions or later instructions. Going above SSE3 is dangerous.
- LDC 1.28 to 1.40 for
These are the individual constraints per macOS version. The intersection of which gives the above recommendations. This only lists the known constraints, and some of them were forgotten along the years.
-
macOS 15 Sequoia (released 16 September 2024)
- As a target: Xcode >= 13.
- As a target: LDC >= 1.28.
-
As a build platform: WARNING Running a D compiler got harder. First try to run them, them unblock them from
System Settings > Privacy and Security
and click "run anyway".
-
macOS 14 Sonoma (released 26 September 2023)
- As a target: Xcode >= 13.
- As a target: LDC >= 1.28.
-
macOS 13 Ventura (released October 24, 2022)
- As a target: Xcode >= 13.
- As a target: LDC >= 1.28.
-
macOS 12 Monterey (released October 25, 2021)
- As a target: Xcode >= 13.
- As a target: LDC >= 1.28.
- As a build platform: First OS that can run Xcode >= 13.
-
macOS 11 Big Sur (released November 12, 2020)
- As a target: Xcode >= 13.
- As a target: LDC >= 1.28.
-
macOS 10.15 Catalina (released October 7, 2019)
- As a target: Xcode >= 13, Xcode <= 14.
- As a target: LDC >= 1.28, LDC <= 1.29.
-
As a target: Starting with Catalina, software should be notarized to avoid a warning. And since Nov 2023, notarization with
notarytool
requires Xcode 13.0+ (Monterey). -
As a build platform: This is the lowest macOS that can target
arm64
(Catalina can run XCode 12), but cannot notarize anymore other than copying thenotarytool
executable.
-
macOS 10.14 Mojave (released September 24, 2018)
- As a target: LDC >= 1.28, LDC <= 1.29.
- As a target: Xcode <= 14.
- As a target: Starting with Mojave, software should be codesigned to avoid a warning.
-
As a build platform: Don't use anything <= 10.14 to release macOS software, else you can't have
arm64
support.
-
macOS 10.13 High Sierra (released September 25, 2017)
- As a target: LDC >= 1.28, LDC <= 1.29.
- As a target: Xcode <= 14.
-
macOS 10.12 Sierra (released September 20, 2016)
- As a target: LDC >= 1.28, LDC <= 1.29.
- As a target: Xcode <= 14.
-
macOS 10.11 El Capitan (released September 30, 2015)
- As a target: LDC >= 1.28, LDC <= 1.29.
- Unknown Xcode requirement.
- Unknown status, some customer report it works, others don't.
-
macOS 10.10 Yosemite (released July 24, 2014)
- As a target: Unknown, this is forgotten knowledge.
- Unknown status.