Title: Isolate DerivedData per workspace to avoid conflicts with concurrent sessions · Issue #340 · getsentry/XcodeBuildMCP · GitHub
Open Graph Title: Isolate DerivedData per workspace to avoid conflicts with concurrent sessions · Issue #340 · getsentry/XcodeBuildMCP
X Title: Isolate DerivedData per workspace to avoid conflicts with concurrent sessions · Issue #340 · getsentry/XcodeBuildMCP
Description: When multiple MCP sessions (or CLI invocations) build the same project from different clones, they all share a single flat ~/Library/Developer/XcodeBuildMCP/DerivedData directory. Because xcodebuild only creates hashed per-project subdir...
Open Graph Description: When multiple MCP sessions (or CLI invocations) build the same project from different clones, they all share a single flat ~/Library/Developer/XcodeBuildMCP/DerivedData directory. Because xcodebuil...
X Description: When multiple MCP sessions (or CLI invocations) build the same project from different clones, they all share a single flat ~/Library/Developer/XcodeBuildMCP/DerivedData directory. Because xcodebuil...
Opengraph URL: https://github.com/getsentry/XcodeBuildMCP/issues/340
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Isolate DerivedData per workspace to avoid conflicts with concurrent sessions","articleBody":"When multiple MCP sessions (or CLI invocations) build the same project from different clones, they all share a single flat `~/Library/Developer/XcodeBuildMCP/DerivedData` directory. Because xcodebuild only creates hashed per-project subdirectories when using its default DerivedData location — not when an explicit `-derivedDataPath` is passed — concurrent builds of the same project collide on the shared `Build/`, `SourcePackages/`, etc.\n\nThis causes corrupted incremental builds, race conditions, and unpredictable failures when running parallel agent sessions against separate clones of the same repo.\n\n**Proposed solution**: Hash the workspace/project root path into the DerivedData subdirectory, e.g.:\n\n```\n~/Library/Developer/XcodeBuildMCP/DerivedData/\u003cscheme\u003e-\u003chash-of-workspace-root\u003e/\n```\n\nThis mirrors how Xcode isolates DerivedData per workspace in its default location. The hash should be derived from the resolved absolute path of the workspace or project file so that different clones get different directories automatically.\n\n**Current workaround**: Set a unique `XCODEBUILDMCP_DERIVED_DATA_PATH` env var or `derivedDataPath` session default per session.","author":{"url":"https://github.com/codeman9","@type":"Person","name":"codeman9"},"datePublished":"2026-04-15T15:47:42.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":1},"url":"https://github.com/340/XcodeBuildMCP/issues/340"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:d89362cf-da21-7897-c399-39ce2f966911 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 9E68:12134:E3FF:122D6:6A4D1165 |
| html-safe-nonce | dca8b06b06956c5b3b9be121148403652b6a9a4387872f5364c31f42bfd2f15d |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5RTY4OjEyMTM0OkUzRkY6MTIyRDY6NkE0RDExNjUiLCJ2aXNpdG9yX2lkIjoiNTU4NDQ2MTAyMTc0MzA2NjYxIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 8237d769f17b99926a8620d1d920bb468f1cdc80dd47731a310178db4715ca02 |
| hovercard-subject-tag | issue:4270066439 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/getsentry/XcodeBuildMCP/340/issue_layout |
| twitter:image | https://opengraph.githubassets.com/4b3c5b95c170c6a127cbcf8f52cb5b49a7c2bf495756d17a5481495ca4946696/getsentry/XcodeBuildMCP/issues/340 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/4b3c5b95c170c6a127cbcf8f52cb5b49a7c2bf495756d17a5481495ca4946696/getsentry/XcodeBuildMCP/issues/340 |
| og:image:alt | When multiple MCP sessions (or CLI invocations) build the same project from different clones, they all share a single flat ~/Library/Developer/XcodeBuildMCP/DerivedData directory. Because xcodebuil... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | codeman9 |
| hostname | github.com |
| expected-hostname | github.com |
| None | f02420044fa3730a0607f4a52546bdd73f5ae60187ef57d284ecb6d7f3f1d880 |
| turbo-cache-control | no-preview |
| go-import | github.com/getsentry/XcodeBuildMCP git https://github.com/getsentry/XcodeBuildMCP.git |
| octolytics-dimension-user_id | 1396951 |
| octolytics-dimension-user_login | getsentry |
| octolytics-dimension-repository_id | 945551361 |
| octolytics-dimension-repository_nwo | getsentry/XcodeBuildMCP |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 945551361 |
| octolytics-dimension-repository_network_root_nwo | getsentry/XcodeBuildMCP |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | f0b6a62c1f0be1086cb0b5b077b82cebe520eb42 |
| ui-target | canary-1 |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width