packages/core/RNSentry.podspec currently declares 10 public headers scattered across ios/ and ios/Replay/:
s.public_header_files = 'ios/RNSentry.h', 'ios/RNSentrySDK.h', 'ios/RNSentryStart.h',
'ios/RNSentryVersion.h', 'ios/RNSentryBreadcrumb.h',
'ios/RNSentryReplay.h', 'ios/RNSentryReplayBreadcrumbConverter.h',
'ios/Replay/RNSentryReplayMask.h', 'ios/Replay/RNSentryReplayUnmask.h',
'ios/RNSentryTimeToDisplay.h'
This pattern has two issues:
- CocoaPods today: The generated module map and umbrella header are needlessly complex; non-modular include warnings are easier to trigger.
- Future SPM: Swift Package Manager requires public headers to live under a single
publicHeadersPath. Today's layout cannot be expressed in Package.swift without symlinks or restructuring.
Goal
All public headers live under packages/core/ios/include/. The podspec resolves them via a single s.public_header_files = 'ios/include/*.h' line. The eventual Package.swift uses publicHeadersPath: "include".
packages/core/RNSentry.podspeccurrently declares 10 public headers scattered acrossios/andios/Replay/:This pattern has two issues:
publicHeadersPath. Today's layout cannot be expressed inPackage.swiftwithout symlinks or restructuring.Goal
All public headers live under
packages/core/ios/include/. The podspec resolves them via a singles.public_header_files = 'ios/include/*.h'line. The eventualPackage.swiftusespublicHeadersPath: "include".