Projects that use external Swift Package Manager dependencies now build correctly when .build/checkouts is replaced by a symlink, such as with CI caching tools like Namespace’s nscloud-cache-action. Previously, the generated module-map and header-search flags used $(SRCROOT)/../../tuist-derived/... paths that traversed the symlinked checkouts directory. On Xcode 26.5 and later, the explicit-modules dependency scanner resolves symlinks before following .. segments, which caused the path to land on the cache volume where tuist-derived/ does not exist and the build failed with module map file... not found. Tuist now anchors those flags on $(PROJECT_DIR) for paths under the SwiftPM-derived directory, keeping the path entirely inside tuist-derived/ and avoiding the symlinked `..
Hive
Fix external SwiftPM builds with symlinked .build/checkouts on Xcode 26.5+
Published
May 26, 2026 · 14:39 UTC
Repository
tuist/tuist