Skip to content

Add Tuist setup for XCFramework generation#807

Open
pepicrft wants to merge 1 commit intoOpenSwiftUIProject:mainfrom
tuist:feat/tuist-xcframework-setup
Open

Add Tuist setup for XCFramework generation#807
pepicrft wants to merge 1 commit intoOpenSwiftUIProject:mainfrom
tuist:feat/tuist-xcframework-setup

Conversation

@pepicrft
Copy link

@pepicrft pepicrft commented Mar 4, 2026

Hey! I'm Pedro, co-founder of Tuist. I've been looking at OpenSwiftUI and thought it'd be useful to have a Tuist-based setup for producing XCFrameworks via xcodebuild, without relying solely on SPM.

This adds Tuist project manifests with a Project.swift covering all the existing targets (OpenSwiftUI, OpenSwiftUICore, OpenSwiftUI_SPI, COpenSwiftUI, OpenSwiftUIMacros, OpenSwiftUIExtension, OpenSwiftUIBridge, OpenSwiftUISymbolDualTestsSupport), a Tuist/Package.swift for external dependency resolution, and an availability-macros.xcconfig for the availability macro flags. I also added module maps for COpenSwiftUI and OpenSwiftUISymbolDualTestsSupport since Xcode needs them for module discovery, a package typealias in Path.swift to resolve an ORBPath ambiguity that arises from Xcode's transitive header search path propagation, and conditional compilation guards around BacklightServices-dependent code in the UIKit hosting views.

I've verified the build succeeds for macOS, iOS device, and iOS Simulator in both Debug and Release configurations, and successfully produced an XCFramework with xcodebuild -create-xcframework.

Add Tuist manifests (Project.swift, Tuist.swift, Tuist/Package.swift) to enable
building OpenSwiftUI as an XCFramework using xcodebuild. This includes module maps
for COpenSwiftUI and OpenSwiftUISymbolDualTestsSupport, a package typealias to
resolve ORBPath module ambiguity in Xcode, and conditional compilation guards for
BacklightServices-dependent code.
@pepicrft pepicrft requested a review from Kyle-Ye as a code owner March 4, 2026 14:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant