SIGN IN SIGN UP

Forward declare JSExecutorFactory in RCTAppSetupUtils (#58134)

Summary:
Pull Request resolved: https://github.com/react/react-native/pull/58134

`RCTAppSetupUtils.h` is a public header - every app's AppDelegate imports it as `<React/RCTAppSetupUtils.h>` - but it imported `<jsireact/JSIExecutor.h>` while naming nothing from it. The only symbol it needs out of that include chain is `JSExecutorFactory`, the return type of `RCTAppSetupDefaultJsExecutorFactory`, which is declared in `<cxxreact/JSExecutor.h>`.

Both `jsiexecutor:jsiexecutor` and `cxxreact:bridge` are private targets under the three-tier C++ stable API visibility model. The type is forward declared alongside the existing `RuntimeScheduler` forward declaration - `std::unique_ptr<T>` needs only an incomplete type in a declaration - and `<cxxreact/JSExecutor.h>` moves to the implementation file.

Code that relied on reaching `JSIExecutor` or `JSExecutorFactory` through this header should import `<jsireact/JSIExecutor.h>` or `<cxxreact/JSExecutor.h>` directly.

Changelog:
[iOS][Changed] - `RCTAppSetupUtils.h` no longer transitively imports `JSIExecutor.h` or `JSExecutor.h`

Reviewed By: cortinico

Differential Revision: D117330792

fbshipit-source-id: 2c06c70913a18107f3f08ffb3915b40b1a251a3c
J
Jakub Piasecki committed
3eb901e31a2b8258c4e478ad719db64ee30839af
Parent: 7754512
Committed by meta-codesync[bot] <215208954+meta-codesync[bot]@users.noreply.github.com> on 9/11/2026, 6:35:02 AM