Hive Hive
Sign in

Fix SwiftPM C-target headers breaking sibling shim modules

Metadata
Source
GitHub
Version
4.202.0-canary.32
Published
Jul 02, 2026 · 17:13 UTC
Repository
tuist/tuist
Update

Fixes a regression from 4.202.0-canary.29 where Tuist incorrectly tagged public headers of SwiftPM C-family targets as Xcode Public, which copies them into the generated framework bundle’s Headers/ directory. For .custom and .header module-map targets (consumed via import Module), those headers are now surfaced as project headers instead. This prevents flags like #if __has_include(<Module/Header.h>) inside sibling shim targets (for example, swift-nio-ssl’s CNIOBoringSSLShims.h) from flipping to true and re-homing declarations into the wrong module, which broke builds under the MemberImportVisibility upcoming feature. Directory-style targets (consumed via <Module/Header.h> imports) still keep their public headers Public so ObjC frameworks continue to archive correctly.