Developer Setup for macOS
Current support
macOS support currently covers native SimLibs and headless Project AirSim
Runtime source builds on Apple Silicon (ARM64). Release builds and the
SimLibs unit suite were validated on an ARM64 image of the macos-15 CI runner. Runtime is
linked as part of that build; runtime flight, client integration, and shutdown
are not yet exercised on macOS in CI.
Component |
macOS status |
|---|---|
SimLibs |
Release build and unit tests validated on macOS 15 ARM64 |
Project AirSim Runtime |
Native executable built; macOS integration validation pending |
Unreal plugin and Blocks |
Not currently validated or supported on macOS |
Intel Macs / universal runtime binaries |
Not validated |
Downloadable macOS runtime distribution |
Not produced by the macOS CI workflow |
This describes the source build capability, not availability in a published release. The runtime provides the shared simulation core without Unreal or rendered sensors; see Runtime capabilities. Individual controller and external simulator integrations require separate macOS validation.
Prerequisites
Use an Apple Silicon Mac with Apple’s C++ command-line toolchain and Homebrew available. The tested OS is macOS 15; other macOS versions are not covered by this validation. Unreal Engine is not required for this build.
From the repository root, install the dependencies:
chmod +x setup_macos_dev_tools.sh build.sh
./setup_macos_dev_tools.sh
The script installs CMake, Ninja, OpenSSL 3, and zlib through Homebrew.
Build and test
From the repository root:
./build.sh simlibs_release
./build.sh test_simlibs_release
The macOS build uses build/macos/Release. Debug targets are also available
as simlibs_debug and test_simlibs_debug; the CI validation described above
covers Release.
The runtime executable is generated at:
build/macos/Release/samples/projectairsim_runtime/projectairsim-runtime
To start a local runtime evaluation from the repository root:
./build/macos/Release/samples/projectairsim_runtime/projectairsim-runtime
This launch command is the next integration validation step; a successful build alone does not establish that a complete flight or shutdown works on macOS. Follow the Runtime guide for client usage and host limitations.
package_simlibs stages simulation libraries for custom projects. It does not
create a distributable runtime app or an Unreal/Blocks package for Mac.