wix / wix/react-native-navigation
"RCTHost.h not found — react-native-navigation 8.3.2 + RN 0.77.3 + use_frameworks! :linkage => :dynamic (Firebase 26 SPM mode)"
Nobody has claimed this yet.
- Dominant language
- MDX
- Stars
- 13.2k
- Forks
- 2.6k
- Avg merge
- 6d 2h
- Merged PRs (30d)
- 1
Description
What happened?
Build fails on iOS with react-native-navigation when using use_frameworks! :linkage => :dynamic, which is required to support React Native Firebase 26's native SPM resolution (RNFB 26+ resolves Firebase via SPM by default, and RNFB docs explicitly state SPM mode cannot be combined with :linkage => :static).
Error:
node_modules/react-native-navigation/lib/ios/RNNReactButtonView.h:2:9: fatal error: 'React-RuntimeApple/ReactCommon/RCTHost.h' file not found
2 | #import <React-RuntimeApple/ReactCommon/RCTHost.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Included via: RNNComponentViewCreator.h → RNNReactButtonView.h
This looks related to #8075, #8094 and #8026, but those are scoped to :linkage => :static. The fix that closed #8026 (PR #8171, documentation only) specifically opts Firebase back onto CocoaPods ($RNFirebaseDisableSPM = true) and requires static linkage — which isn't viable for us since we upgraded specifically to use RNFB 26's SPM support.
Things I tried, all with a full clean between attempts (rm -rf Pods Podfile.lock ~/Library/Developer/Xcode/DerivedData/*, then pod install):
- post_install patch adding HEADER_SEARCH_PATHS / FRAMEWORK_SEARCH_PATHS pointing at
${PODS_CONFIGURATION_BUILD_DIR}/React-RuntimeApple/React_RuntimeApple.framework/Headers— no change. - Patching the import to
#import <React_RuntimeApple/RCTHost.h>(flat framework-style) — got past the "file not found," but then failed with the framework loading yet not containing RCTHost.h at that build path. - Reverting the import and adding the full set of transitive header search paths RCTHost.h itself needs (React-RuntimeCore, React-jserrorhandler, React-jsinspector, RCT-Folly, fmt, etc., per https://gist.github.com/Kudo/1b892e340f181bd610fcaa7369887593) — same original error persists at the first import.
Environment:
- react-native-navigation: 8.3.2
- react-native: 0.77.3
- @react-native-firebase/*: ^26.1.0
- use_frameworks: :dynamic
- New Architecture: enabled
- Xcode 16, iOS 26.2 SDK
What was the expected behaviour?
Project builds successfully on iOS with react-native-navigation installed alongside react-native-firebase 26+ using use_frameworks! :linkage => :dynamic (required for Firebase's native SPM resolution).
Was it tested on latest react-native-navigation?
- I have tested this issue on the latest react-native-navigation release and it still reproduces.
Help us reproduce this issue!
Minimal repro Podfile config that triggers it:
ENV['SENTRY_USE_SPM'] = '1'
platform :ios, '16.0'
prepare_react_native_project!
$RNFirebaseAnalyticsWithoutAdIdSupport = true
use_frameworks! :linkage => :dynamic
target 'App' do
config = use_native_modules!
pod 'GoogleUtilities', :modular_headers => true
use_react_native!(
:path => config[:reactNativePath],
:app_path => "#{Pod::Config.instance.installation_root}/.."
)
end
Dependencies: react-native-navigation 8.3.2, @react-native-firebase/app ^26.1.0, react-native 0.77.3.
Happy to share a minimal reproducible repo if that'd help triage — let me know and I'll strip our app down to a bare repro.
In what environment did this happen?
React Native Navigation version: 8.3.2
React Native version: 0.77.3
Has Fabric (React Native's new rendering system) enabled: yes
Node version: 20.19.0
Device model: iPhone (simulator + physical device, arm64)
iOS version: 18 / building against iOS 26.2 SDK
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the minimal Podfile configuration and reproduce the build after the stated clean-up steps. Trace the import from RNNComponentViewCreator.h through RNNReactButtonView.h and compare the React-RuntimeApple framework headers under dynamic linkage. Done means the sample configuration builds successfully with React Native Firebase 26 SPM mode and react-native-navigation 8.3.2.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- firebase, ios, react-native
- Domain
- build-system, mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100