From 4e706e8393f3d50c618b6e8a6a1f8bf12180e72e Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Wed, 5 Nov 2025 16:42:51 +0100 Subject: [PATCH] [RN][iOS] Fix Dynamic framework build and resolve circular dependency for JSC --- .../react-native/React/CoreModules/React-CoreModules.podspec | 1 + packages/react-native/React/Runtime/React-RCTRuntime.podspec | 1 + .../react-native/ReactCommon/cxxreact/React-cxxreact.podspec | 1 + .../ReactCommon/jsiexecutor/React-jsiexecutor.podspec | 1 + .../tracing/React-jsinspectortracing.podspec | 4 ++++ .../ReactCommon/jsitooling/React-jsitooling.podspec | 1 + .../react-native/ReactCommon/react/utils/React-utils.podspec | 4 +++- 7 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/react-native/React/CoreModules/React-CoreModules.podspec b/packages/react-native/React/CoreModules/React-CoreModules.podspec index 08fbf0b9aae8..e9e095590e6e 100644 --- a/packages/react-native/React/CoreModules/React-CoreModules.podspec +++ b/packages/react-native/React/CoreModules/React-CoreModules.podspec @@ -61,6 +61,7 @@ Pod::Spec.new do |s| add_dependency(s, "React-RCTFBReactNativeSpec") add_dependency(s, "ReactCommon", :subspec => "turbomodule/core", :additional_framework_paths => ["react/nativemodule/core"]) add_dependency(s, "React-NativeModulesApple") + add_dependency(s, "React-utils", :additional_framework_paths => ["react/utils/platform/ios"]) add_rn_third_party_dependencies(s) add_rncore_dependency(s) diff --git a/packages/react-native/React/Runtime/React-RCTRuntime.podspec b/packages/react-native/React/Runtime/React-RCTRuntime.podspec index ffd2ac92b266..76b745957eb5 100644 --- a/packages/react-native/React/Runtime/React-RCTRuntime.podspec +++ b/packages/react-native/React/Runtime/React-RCTRuntime.podspec @@ -56,6 +56,7 @@ Pod::Spec.new do |s| add_dependency(s, "React-RuntimeCore") add_dependency(s, "React-RuntimeApple") + add_dependency(s, "React-utils", :additional_framework_paths => ["react/utils/platform/ios"]) if use_third_party_jsc() s.exclude_files = ["RCTHermesInstanceFactory.{mm,h}", "RCTJscInstanceFactory.{mm,h}"] diff --git a/packages/react-native/ReactCommon/cxxreact/React-cxxreact.podspec b/packages/react-native/ReactCommon/cxxreact/React-cxxreact.podspec index d6282664acff..59fbcf3c593e 100644 --- a/packages/react-native/ReactCommon/cxxreact/React-cxxreact.podspec +++ b/packages/react-native/ReactCommon/cxxreact/React-cxxreact.podspec @@ -44,6 +44,7 @@ Pod::Spec.new do |s| s.dependency "React-logger", version s.dependency "React-debug", version s.dependency "React-timing", version + add_dependency(s, "React-utils", :additional_framework_paths => ["react/utils/platform/ios"]) s.resource_bundles = {'React-cxxreact_privacy' => 'PrivacyInfo.xcprivacy'} diff --git a/packages/react-native/ReactCommon/jsiexecutor/React-jsiexecutor.podspec b/packages/react-native/ReactCommon/jsiexecutor/React-jsiexecutor.podspec index fdcaa4022ac6..03497f2e1463 100644 --- a/packages/react-native/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +++ b/packages/react-native/ReactCommon/jsiexecutor/React-jsiexecutor.podspec @@ -37,6 +37,7 @@ Pod::Spec.new do |s| add_dependency(s, "React-jsinspector", :framework_name => 'jsinspector_modern') add_dependency(s, "React-jsinspectorcdp", :framework_name => 'jsinspector_moderncdp') add_dependency(s, "React-jsinspectortracing", :framework_name => 'jsinspector_moderntracing') + add_dependency(s, "React-utils", :additional_framework_paths => ["react/utils/platform/ios"]) if use_hermes() s.dependency 'hermes-engine' end diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec b/packages/react-native/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec index 41deaa712ae8..38675d367517 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +++ b/packages/react-native/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec @@ -48,6 +48,10 @@ Pod::Spec.new do |s| s.dependency "React-oscompat" s.dependency "React-timing" + if use_hermes() + s.dependency "hermes-engine" + end + add_rn_third_party_dependencies(s) add_rncore_dependency(s) end diff --git a/packages/react-native/ReactCommon/jsitooling/React-jsitooling.podspec b/packages/react-native/ReactCommon/jsitooling/React-jsitooling.podspec index 49c1dcd83156..dc005f8c4200 100644 --- a/packages/react-native/ReactCommon/jsitooling/React-jsitooling.podspec +++ b/packages/react-native/ReactCommon/jsitooling/React-jsitooling.podspec @@ -42,6 +42,7 @@ Pod::Spec.new do |s| add_dependency(s, "React-jsinspector", :framework_name => 'jsinspector_modern') add_dependency(s, "React-jsinspectorcdp", :framework_name => 'jsinspector_moderncdp') add_dependency(s, "React-jsinspectortracing", :framework_name => 'jsinspector_moderntracing') + add_dependency(s, "React-utils", :additional_framework_paths => ["react/utils/platform/ios"]) add_rn_third_party_dependencies(s) add_rncore_dependency(s) diff --git a/packages/react-native/ReactCommon/react/utils/React-utils.podspec b/packages/react-native/ReactCommon/react/utils/React-utils.podspec index d3061f63bb06..1a939b49cb28 100644 --- a/packages/react-native/ReactCommon/react/utils/React-utils.podspec +++ b/packages/react-native/ReactCommon/react/utils/React-utils.podspec @@ -47,7 +47,9 @@ Pod::Spec.new do |s| s.dependency "React-jsi", version - depend_on_js_engine(s) + if use_hermes() + s.dependency "hermes-engine" + end add_rn_third_party_dependencies(s) add_rncore_dependency(s)