docs/src/development/macos.md

Building Zed for macOS

Repository

Clone down the Zed repository.

Dependencies

  • Install Rust
  • Install Xcode from the macOS App Store, or from the Apple Developer website. Note this requires a developer account.

Ensure you launch XCode after installing, and install the MacOS components, which is the default option.

  • Install Xcode command line tools

    bash
    1xcode-select --install
  • Ensure that the Xcode command line tools are using your newly installed copy of Xcode:

    1sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
  • Install the Rust wasm toolchain:

    bash
    1rustup target add wasm32-wasi

Backend Dependencies

If you are developing collaborative features of Zed, you'll need to install the dependencies of zed's collab server:

Alternatively, if you have Docker installed you can bring up all the collab dependencies using Docker Compose:

sh
1docker compose up -d

Building Zed from Source

Once you have the dependencies installed, you can build Zed using Cargo.

For a debug build:

1cargo run

For a release build:

1cargo run --release

And to run the tests:

1cargo test --workspace

Troubleshooting

Error compiling metal shaders

1error: failed to run custom build command for gpui v0.1.0 (/Users/path/to/zed)`**
2
3xcrun: error: unable to find utility "metal", not a developer tool or in PATH

Try sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

Cargo errors claiming that a dependency is using unstable features

Try cargo clean and cargo build.

Error: 'dispatch/dispatch.h' file not found

If you encounter an error similar to:

bash
1src/platform/mac/dispatch.h:1:10: fatal error: 'dispatch/dispatch.h' file not found
2
3Caused by:
4 process didn't exit successfully
5
6 --- stdout
7 cargo:rustc-link-lib=framework=System
8 cargo:rerun-if-changed=src/platform/mac/dispatch.h
9 cargo:rerun-if-env-changed=TARGET
10 cargo:rerun-if-env-changed=BINDGEN_EXTRA_CLANG_ARGS_aarch64-apple-darwin
11 cargo:rerun-if-env-changed=BINDGEN_EXTRA_CLANG_ARGS_aarch64_apple_darwin
12 cargo:rerun-if-env-changed=BINDGEN_EXTRA_CLANG_ARGS

This file is part of Xcode. Ensure you have installed the Xcode command line tools and set the correct path:

bash
1xcode-select --install
2sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

Additionally, set the BINDGEN_EXTRA_CLANG_ARGS environment variable:

bash
1export BINDGEN_EXTRA_CLANG_ARGS="--sysroot=$(xcrun --show-sdk-path)"

Then clean and rebuild the project:

bash
1cargo clean
2cargo run