You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For derived data the MCP currently offers two modes, neither of which lets agent builds share Xcode.app's DerivedData per workspace:
Default: per-workspace isolation (Isolate DerivedData per workspace to avoid conflicts with concurrent sessions #340), but under the MCP's own tree (~/Library/Developer/XcodeBuildMCP/workspaces/<workspace>/DerivedData). This is separate from Xcode.app's ~/Library/Developer/Xcode/DerivedData/<Workspace>-<hash>, so a project built both in the GUI and via the MCP is built and stored twice — double the disk and no incremental reuse across the two.
XCODEBUILDMCP_DERIVED_DATA_PATH: a single static path applied to every call (resolveEffectiveDerivedDataPath returns it verbatim). With multiple workspaces/worktrees, they all collide in one folder → build-product clobbering and full rebuilds.
Request
A mode to resolve derived data to the existing Xcode.app DerivedData folder for each workspace (e.g. matching WorkspacePath in each folder's info.plist), and/or per-workspace configurability instead of a single static override.
This would let a repo built in both Xcode and the MCP share one DerivedData per workspace — no duplication, true incremental reuse between interactive and agent builds.
Workaround
I currently achieve this with a client-side PreToolUse hook that rewrites each build/test call's derivedDataPath to the matching GUI folder (looked up via WorkspacePath in each folder's info.plist), falling back to a deterministic per-workspace path when no GUI folder exists yet. Happy to share it if useful.
Version: 2.7.0
Problem
For derived data the MCP currently offers two modes, neither of which lets agent builds share Xcode.app's DerivedData per workspace:
~/Library/Developer/XcodeBuildMCP/workspaces/<workspace>/DerivedData). This is separate from Xcode.app's~/Library/Developer/Xcode/DerivedData/<Workspace>-<hash>, so a project built both in the GUI and via the MCP is built and stored twice — double the disk and no incremental reuse across the two.XCODEBUILDMCP_DERIVED_DATA_PATH: a single static path applied to every call (resolveEffectiveDerivedDataPathreturns it verbatim). With multiple workspaces/worktrees, they all collide in one folder → build-product clobbering and full rebuilds.Request
A mode to resolve derived data to the existing Xcode.app DerivedData folder for each workspace (e.g. matching
WorkspacePathin each folder'sinfo.plist), and/or per-workspace configurability instead of a single static override.This would let a repo built in both Xcode and the MCP share one DerivedData per workspace — no duplication, true incremental reuse between interactive and agent builds.
Workaround
I currently achieve this with a client-side
PreToolUsehook that rewrites each build/test call'sderivedDataPathto the matching GUI folder (looked up viaWorkspacePathin each folder'sinfo.plist), falling back to a deterministic per-workspace path when no GUI folder exists yet. Happy to share it if useful.Related