Skip to content

Build fails with Command Line Tools only — Xcode.app should not be required #6

@siva-acv

Description

@siva-acv

Summary

pip install (and pip install -e .) fails on systems that have Command Line Tools installed but not the full Xcode.app. The build backend explicitly rejects Command Line Tools and requires xcodebuild, but the actual build only uses swift build via Swift Package Manager — which works fine with just Command Line Tools.

Environment

  • macOS 26.3 (Tahoe), Apple M3 Max
  • Swift 6.2.3 (from Command Line Tools)
  • xcode-select -p/Library/Developer/CommandLineTools
  • Xcode.app not installed

Error

Running pip install -e . produces:

SwiftToolingError: The active developer directory is set to Command Line Tools
(/Library/Developer/CommandLineTools), but a full Xcode installation is required.
Please install Xcode. Then open Xcode at least once to accept the license agreement
and install the Swift SDKs.

Root Cause

In build_backend.py, _build_c_bindings() performs three checks that require Xcode.app:

  1. xcode-select -p path check — rejects if path contains CommandLineTools
  2. xcodebuild existence checkxcodebuild binary exists in PATH but fails with: "tool 'xcodebuild' requires Xcode, but active developer directory is a command line tools instance"
  3. xcodebuild -version parse — requires Xcode version >= 26.0

However, the actual compilation (lines 74-81) only uses:

subprocess.run(["swift", "build", "-c", swift_build_config], ...)

This is a pure Swift Package Manager build — it does not invoke xcodebuild at all. The Swift toolchain from Command Line Tools is sufficient.

Workaround

Removing the Xcode checks from build_backend.py (lines 71-131 in the original) allows the build to succeed:

# Replace the xcode-select + xcodebuild checks with just:
# (swift is already checked above)

After this change, pip install -e . completes successfully and the SDK works correctly (text generation, streaming, guided generation, tool calling all verified).

Suggested Fix

Either:

  • Remove the Xcode.app requirement entirely, since swift build doesn't need it
  • Make it a warning instead of an error, so users with Command Line Tools can still proceed
  • Check for Swift SDK availability directly (e.g., swift sdk list or check for the macOS SDK) rather than using Xcode.app as a proxy

The macOS version check and swift executable check should remain — those are genuine requirements.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions