From 69d5dcf53b34f633936814739d7c4db929ab09d6 Mon Sep 17 00:00:00 2001 From: Tommy Nguyen <4123478+tido64@users.noreply.github.com> Date: Mon, 1 Jun 2026 13:44:09 +0200 Subject: [PATCH] fix(react-native-host): handle removal of legacy arch code --- .changeset/funny-monkeys-cover.md | 5 +++++ .../react-native-host/cocoa/RNXBridgelessHeaders.h | 9 ++++++++- packages/react-native-host/cocoa/RNXFeatureMacros.h | 4 ++++ packages/react-native-host/cocoa/ReactNativeHost.mm | 11 +++++++---- packages/test-app/ios/Podfile.lock | 4 ++-- 5 files changed, 26 insertions(+), 7 deletions(-) create mode 100644 .changeset/funny-monkeys-cover.md diff --git a/.changeset/funny-monkeys-cover.md b/.changeset/funny-monkeys-cover.md new file mode 100644 index 0000000000..d68a114cdc --- /dev/null +++ b/.changeset/funny-monkeys-cover.md @@ -0,0 +1,5 @@ +--- +"@rnx-kit/react-native-host": patch +--- + +Handle removal of `RCTEnableTurboModuleInteropBridgeProxy` and New Arch flags in `ReactNativeFeatureFlags` diff --git a/packages/react-native-host/cocoa/RNXBridgelessHeaders.h b/packages/react-native-host/cocoa/RNXBridgelessHeaders.h index 54069bcd5b..26a5d34c93 100644 --- a/packages/react-native-host/cocoa/RNXBridgelessHeaders.h +++ b/packages/react-native-host/cocoa/RNXBridgelessHeaders.h @@ -71,24 +71,31 @@ class RNXBridgelessFeatureFlags : public facebook::react::ReactNativeFeatureFlag { return true; } + +#ifndef RCT_REMOVE_LEGACY_ARCH bool enableFabricRenderer() override { return true; } + bool useTurboModules() override { return true; } +#endif // !RCT_REMOVE_LEGACY_ARCH + bool useNativeViewConfigsInBridgelessMode() override { return true; } + #if USE_VIEW_COMMAND_RACE_FIX // 0.77 bool enableFixForViewCommandRace() override { return true; } -#endif // USE_VIEW_COMMAND_RACE_FIX +#endif // USE_VIEW_COMMAND_RACE_FIX + #if USE_UPDATE_RUNTIME_SHADOW_NODE_REFS_ON_COMMIT // >= 0.79 bool useShadowNodeStateOnClone() override { diff --git a/packages/react-native-host/cocoa/RNXFeatureMacros.h b/packages/react-native-host/cocoa/RNXFeatureMacros.h index 04c19723bb..bd89c5f658 100644 --- a/packages/react-native-host/cocoa/RNXFeatureMacros.h +++ b/packages/react-native-host/cocoa/RNXFeatureMacros.h @@ -52,6 +52,10 @@ #define USE_UPDATE_RUNTIME_SHADOW_NODE_REFS_ON_COMMIT 1 #endif // __has_include() +#if !__has_include() // >=0.87 +#define RCT_REMOVE_LEGACY_ARCH 1 +#endif // !__has_include() + #endif // USE_FEATURE_FLAGS #endif // USE_BRIDGELESS diff --git a/packages/react-native-host/cocoa/ReactNativeHost.mm b/packages/react-native-host/cocoa/ReactNativeHost.mm index 72b71c3d07..2a38802afd 100644 --- a/packages/react-native-host/cocoa/ReactNativeHost.mm +++ b/packages/react-native-host/cocoa/ReactNativeHost.mm @@ -282,8 +282,12 @@ - (void)initializeReactHost #ifndef USE_UNIFIED_FEATURE_FLAGS RCTSetUseNativeViewConfigsInBridgelessMode(YES); #endif + RCTEnableTurboModuleInterop(YES); + +#ifndef RCT_REMOVE_LEGACY_ARCH RCTEnableTurboModuleInteropBridgeProxy(YES); +#endif // !RCT_REMOVE_LEGACY_ARCH #ifdef USE_REACT_NATIVE_CONFIG _reactNativeConfig = std::make_shared(); @@ -307,10 +311,9 @@ - (void)initializeReactHost }; __weak __typeof(self) weakSelf = self; - if ([RCTHost instancesRespondToSelector:@selector - (initWithBundleURLProvider: - hostDelegate:turboModuleManagerDelegate:jsEngineProvider - :launchOptions:)]) { + if ([RCTHost instancesRespondToSelector: + @selector(initWithBundleURLProvider:hostDelegate:turboModuleManagerDelegate: + jsEngineProvider:launchOptions:)]) { _reactHost = [[RCTHost alloc] initWithBundleURLProvider:^{ return [weakSelf sourceURLForBridge:nil]; diff --git a/packages/test-app/ios/Podfile.lock b/packages/test-app/ios/Podfile.lock index 50dc7553c7..7a717d32c4 100644 --- a/packages/test-app/ios/Podfile.lock +++ b/packages/test-app/ios/Podfile.lock @@ -1750,7 +1750,7 @@ PODS: - React-utils (= 0.85.2) - ReactNativeDependencies - ReactNativeDependencies (0.85.2) - - ReactNativeHost (0.5.16): + - ReactNativeHost (0.5.17): - hermes-engine - RCTRequired - RCTTypeSafety @@ -2128,7 +2128,7 @@ SPEC CHECKSUMS: ReactCodegen: 4accda6590329e2bbb1f1381b39b77d64490c7f4 ReactCommon: a804bb8d1dcf3ecdec3a77eb8bba19b7863bbbdb ReactNativeDependencies: 91cc996bd7c2c58741b96d60817f51ad6692f404 - ReactNativeHost: 60fee0812001bb7fe6b917c3bd75744c05034950 + ReactNativeHost: bfc03f71af9ea8533b3f77493ca49d6c40093397 ReactTestApp-DevSupport: d9358fe3b2dc09399c15731ed8c17bd8388cf512 ReactTestApp-MSAL: 778502496ada0c04f0a96cbcc8359d681c458ace ReactTestApp-Resources: 70da1d78d943a1fdff6362ce3f778e5b4560c95a