"RCTHost.h not found — react-native-navigation 8.3.2 + RN 0.77.3 + use_frameworks! :linkage => :dynamic (Firebase 26 SPM mode)"

Aperta
#8,340 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
firebase, ios, react-native

Direzione di ricerca

Inizia con la configurazione minima di Podfile e riproduci la compilazione dopo i passaggi di pulizia indicati. Traccia l’import da RNNComponentViewCreator.h attraverso RNNReactButtonView.h e confronta gli header del framework React-RuntimeApple con il linking dinamico. Il lavoro è completato quando la configurazione di esempio viene compilata correttamente con React Native Firebase 26 in modalità SPM e react-native-navigation 8.3.2.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

platform: iOS type: accepted/bug
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):

  1. post_install patch adding HEADER_SEARCH_PATHS / FRAMEWORK_SEARCH_PATHS pointing at ${PODS_CONFIGURATION_BUILD_DIR}/React-RuntimeApple/React_RuntimeApple.framework/Headers — no change.
  2. 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.
  3. 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

Lingua principale
MDX
Stelle
13.2k
Fork
2.6k
Merge medio
2g 10h
PR unite (30g)
6

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di wix/react-native-navigation

Tutte le issue di wix/react-native-navigation

Issue simili

Altre issue su Build System

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.