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?
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
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/*, thenpod install):${PODS_CONFIGURATION_BUILD_DIR}/React-RuntimeApple/React_RuntimeApple.framework/Headers— no change.#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.Environment:
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?
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