From bee94edd4bda4fb892e63385ec8b3df1a626265d Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Fri, 21 Aug 2026 05:54:38 -0700 Subject: [PATCH 1/2] Drop unused Hermes import from RCTAppSetupUtils Summary: `RCTAppSetupUtils.h` imports `` but names nothing from it, so the import and the conditional that wrapped only it are removed. This unblocks classifying the Hermes executor as a private target under the three-tier C++ stable API visibility model, which it cannot be while a public header reaches it. Code that relied on reaching `HermesExecutorFactory` through this header should import it directly. Changelog: [iOS][Changed] - `RCTAppSetupUtils.h` no longer transitively imports `HermesExecutorFactory.h` Differential Revision: D116934198 --- .../react-native/Libraries/AppDelegate/RCTAppSetupUtils.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/react-native/Libraries/AppDelegate/RCTAppSetupUtils.h b/packages/react-native/Libraries/AppDelegate/RCTAppSetupUtils.h index d76708c2f957..9053e656326c 100644 --- a/packages/react-native/Libraries/AppDelegate/RCTAppSetupUtils.h +++ b/packages/react-native/Libraries/AppDelegate/RCTAppSetupUtils.h @@ -13,10 +13,6 @@ #import -#if USE_THIRD_PARTY_JSC != 1 -#import -#endif - #import #import From 8d2d485e7beca22b6c3fc9645ea2948cdbce1552 Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Fri, 21 Aug 2026 05:54:38 -0700 Subject: [PATCH 2/2] Cover the Hermes executor with Stable API guards MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: Classifies `hermes/executor:executor` as a private target under the three-tier C++ stable API visibility model. Consumers that opt into `RN_STRICT_API` now get an error if they include its headers directly; without that flag the guards are inert, so no existing build changes behaviour. No podspec edit is needed — `React-hermes`, the pod that compiles this module, is already configured. Changelog: [Internal] Differential Revision: D116934196 --- .../react-native/ReactCommon/hermes/executor/CMakeLists.txt | 1 + .../ReactCommon/hermes/executor/HermesExecutorFactory.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/packages/react-native/ReactCommon/hermes/executor/CMakeLists.txt b/packages/react-native/ReactCommon/hermes/executor/CMakeLists.txt index 3731086f6d7d..e340dda8efc1 100644 --- a/packages/react-native/ReactCommon/hermes/executor/CMakeLists.txt +++ b/packages/react-native/ReactCommon/hermes/executor/CMakeLists.txt @@ -22,6 +22,7 @@ target_link_libraries(hermes_executor_common hermes_inspector_modern jsi jsireact + react_cxxstableapi ${reactnative} ) diff --git a/packages/react-native/ReactCommon/hermes/executor/HermesExecutorFactory.h b/packages/react-native/ReactCommon/hermes/executor/HermesExecutorFactory.h index ae50fd8577bf..978101a12570 100644 --- a/packages/react-native/ReactCommon/hermes/executor/HermesExecutorFactory.h +++ b/packages/react-native/ReactCommon/hermes/executor/HermesExecutorFactory.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include