Fixed a build failure that occurred with external SwiftPM packages when .build/checkouts was a symlink, such as in CI caches that mount the checkouts directory on a separate volume. Xcode 26.5’s explicit-modules dependency scanner now canonicalizes module-map paths before opening them, so paths that traversed ../../ through the symlinked checkouts could resolve incorrectly and fail with module map file ... not found. Tuist now anchors those generated tuist-derived/ module-map and header-search flags on $(PROJECT_DIR) instead of $(SRCROOT), keeping the resolved path inside tuist-derived/ and away from the symlinked subtree. This preserves the same generated-project layout while keeping cache hashes portable, because every machine still uses the identical $(PROJECT_DIR) token
Hive
Keep external SwiftPM builds working when .build/checkouts is symlinked
Published
May 26, 2026 · 14:39 UTC
Repository
tuist/tuist