From 2109765b420f0f145d144ab61c0be7b718455c3d Mon Sep 17 00:00:00 2001 From: Dawid Malecki Date: Fri, 25 Sep 2026 04:24:11 -0700 Subject: [PATCH 1/3] Fix dynamic-framework header resolution for stable C++ umbrella headers (#58679) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: Fix dynamic-framework header resolution for stable C++ umbrella headers. Header paths are now added only to targets that depend on the owning framework, including transitively, without exposing a framework’s built headers to its own compilation. ## Changelog: [Internal] Pull Request resolved: https://github.com/react/react-native/pull/58679 Test Plan: - Focused CocoaPods tests: 16 tests, 27 assertions, all passing. - Dynamic-framework CocoaPods generation: passing. - Verified React-RuntimeApple → React-RCTFabric → React-Fabric receives the React-Fabric umbrella path. - Verified React-Fabric does not receive its own built-framework path. Differential Revision: D121777587 Pulled By: coado --- .../ReactCommon/React-Fabric.podspec | 2 + .../scripts/cocoapods/__tests__/utils-test.rb | 90 ++++++++++++++++++- .../react-native/scripts/cocoapods/utils.rb | 65 ++++++++++++-- 3 files changed, 147 insertions(+), 10 deletions(-) diff --git a/packages/react-native/ReactCommon/React-Fabric.podspec b/packages/react-native/ReactCommon/React-Fabric.podspec index 7a13eb84ef3..b1f003de1cc 100644 --- a/packages/react-native/ReactCommon/React-Fabric.podspec +++ b/packages/react-native/ReactCommon/React-Fabric.podspec @@ -141,6 +141,8 @@ Pod::Spec.new do |s| s.subspec "components" do |ss| ss.subspec "root" do |sss| + sss.dependency "React-Fabric/coreUmbrella" + sss.dependency "React-Fabric/components/viewUmbrella" sss.source_files = podspec_sources("react/renderer/components/root/**/*.{m,mm,cpp,h}", "react/renderer/components/root/**/*.{h}") sss.exclude_files = "react/renderer/components/root/tests" sss.header_dir = "react/renderer/components/root" diff --git a/packages/react-native/scripts/cocoapods/__tests__/utils-test.rb b/packages/react-native/scripts/cocoapods/__tests__/utils-test.rb index 445a2455e0a..952e9229db3 100644 --- a/packages/react-native/scripts/cocoapods/__tests__/utils-test.rb +++ b/packages/react-native/scripts/cocoapods/__tests__/utils-test.rb @@ -732,7 +732,12 @@ def test_updateSearchPaths_whenUseFrameworks_addsSearchPaths second_target ] ) - pods_projects_mock = PodsProjectMock.new([third_target], {"hermes-engine" => {}}) + pods_projects_mock = PodsProjectMock.new( + [third_target], + {"hermes-engine" => {}}, + "test/path-pod.xcodeproj", + [prepare_config("Debug"), prepare_config("Release")] + ) installer = InstallerMock.new(pods_projects_mock, [ AggregatedProjectMock.new(user_project_mock) ]) @@ -743,10 +748,15 @@ def test_updateSearchPaths_whenUseFrameworks_addsSearchPaths # Assert user_project_mock.build_configurations.each do |config| received_search_path = config.build_settings["HEADER_SEARCH_PATHS"] - expected_search_path = "$(inherited) ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core ${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx ${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-debug/React_debug.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-rendererdebug/React_rendererdebug.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-timing/React_timing.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/React-featureflags/React_featureflags.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-renderercss/React_renderercss.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-cxxstableapi/React_cxxstableapi.framework/Headers" + expected_search_path = "$(inherited) ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core ${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx ${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/scrollview/platform/cxx ${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/scrollview/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-debug/React_debug.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-rendererdebug/React_rendererdebug.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-timing/React_timing.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-FabricComponents/React_FabricComponents.framework/Headers/react/renderer/textlayoutmanager/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/React-FabricComponents/React_FabricComponents.framework/Headers/react/renderer/components/text/platform/cxx ${PODS_CONFIGURATION_BUILD_DIR}/React-FabricComponents/React_FabricComponents.framework/Headers/react/renderer/components/textinput/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/React-FabricComponents/React_FabricComponents.framework/Headers/react/renderer/components/switch/iosswitch ${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-bridging/React_bridging.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/React-featureflags/React_featureflags.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-renderercss/React_renderercss.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-cxxstableapi/React_cxxstableapi.framework/Headers" assert_equal(expected_search_path, received_search_path) end + pods_projects_mock.build_configurations.each do |config| + received_search_paths = Shellwords.shellsplit(config.build_settings["HEADER_SEARCH_PATHS"]) + assert_false(received_search_paths.include?("${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers")) + end + installer.target_installation_results.pod_target_installation_results.each do |pod_name, target_installation_result| if pod_name == "SecondTarget" target_installation_result.native_target.build_configurations.each do |config| @@ -808,6 +818,20 @@ def test_add_search_path_if_not_included_does_not_add_existing_path_to_string assert_equal("/path/to/headers /another/path", result) end + def test_add_search_path_if_not_included_adds_path_that_is_prefix_of_existing_path + current_paths = "/path/to/headers/platform/ios" + new_path = "/path/to/headers" + result = ReactNativePodsUtils.add_search_path_if_not_included(current_paths, new_path) + assert_equal("/path/to/headers/platform/ios /path/to/headers", result) + end + + def test_add_search_path_if_not_included_does_not_duplicate_quoted_path_with_spaces + current_paths = '"/path/with spaces/headers" /another/path' + new_path = '"/path/with spaces/headers"' + result = ReactNativePodsUtils.add_search_path_if_not_included(current_paths, new_path) + assert_equal(current_paths, result) + end + def test_add_search_path_if_not_included_does_not_add_existing_path_with_leading_space_to_string current_paths = " /path/with/leading/space /another/path" new_path = "/path/with/leading/space" @@ -943,6 +967,68 @@ def test_createHeaderSearchPathsForStableUmbrellas_whenUsingPrebuiltCore_addsNot assert_equal([], result) end + def test_setStableUmbrellaSearchPaths_addsOwningFrameworkPathToDependentTarget + target = prepare_target("Consumer", nil, [DependencyMock.new("React-Fabric")]) + target_installation_result = TargetInstallationResultMock.new(target, target) + + ReactNativePodsUtils.set_stable_umbrella_search_paths(target_installation_result) + + target.build_configurations.each do |config| + assert_equal( + '$(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers"', + config.build_settings["HEADER_SEARCH_PATHS"] + ) + end + end + + def test_setStableUmbrellaSearchPaths_addsOwningFrameworkPathToTransitivelyDependentTarget + dependency = Struct.new(:name, :target) + fabric_target = prepare_target("React-Fabric") + intermediate_target = prepare_target( + "Intermediate", + nil, + [dependency.new("React-Fabric", fabric_target)] + ) + consumer_target = prepare_target( + "Consumer", + nil, + [dependency.new("Intermediate", intermediate_target)] + ) + target_installation_result = TargetInstallationResultMock.new(consumer_target, consumer_target) + + ReactNativePodsUtils.set_stable_umbrella_search_paths(target_installation_result) + + consumer_target.build_configurations.each do |config| + assert_equal( + '$(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers"', + config.build_settings["HEADER_SEARCH_PATHS"] + ) + end + end + + def test_setStableUmbrellaSearchPaths_doesNotAddOwningFrameworkPathToUnrelatedTarget + target = prepare_target("React-Fabric") + target_installation_result = TargetInstallationResultMock.new(target, target) + + ReactNativePodsUtils.set_stable_umbrella_search_paths(target_installation_result) + + target.build_configurations.each do |config| + assert_nil(config.build_settings["HEADER_SEARCH_PATHS"]) + end + end + + def test_setStableUmbrellaSearchPaths_whenUsingPrebuiltCore_addsNothing + ReactNativeCoreUtils.class_variable_set(:@@build_from_source, false) + target = prepare_target("Consumer", nil, [DependencyMock.new("React-Fabric")]) + target_installation_result = TargetInstallationResultMock.new(target, target) + + ReactNativePodsUtils.set_stable_umbrella_search_paths(target_installation_result) + + target.build_configurations.each do |config| + assert_nil(config.build_settings["HEADER_SEARCH_PATHS"]) + end + end + # ================================= # # TEST - Add RN_BUILDING definition # # ================================= # diff --git a/packages/react-native/scripts/cocoapods/utils.rb b/packages/react-native/scripts/cocoapods/utils.rb index 2140b3013b0..4079d17836b 100644 --- a/packages/react-native/scripts/cocoapods/utils.rb +++ b/packages/react-native/scripts/cocoapods/utils.rb @@ -358,15 +358,19 @@ def self.create_header_search_path_for_frameworks(base_folder, pod_name, framewo def self.create_header_search_paths_for_stable_umbrellas(base_folder) return [] unless ReactNativeCoreUtils.build_rncore_from_source() + self.stable_umbrella_frameworks.flat_map { |pod_name, framework_name| + self.create_header_search_path_for_frameworks(base_folder, pod_name, framework_name, []) + } + end + + def self.stable_umbrella_frameworks [ ["React-Fabric", "React_Fabric"], ["React-debug", "React_debug"], ["React-rendererdebug", "React_rendererdebug"], ["React-timing", "React_timing"], ["React-utils", "React_utils"], - ].flat_map { |pod_name, framework_name| - self.create_header_search_path_for_frameworks(base_folder, pod_name, framework_name, []) - } + ] end # Add a new dependency to an existing spec, configuring also the headers search paths @@ -399,6 +403,9 @@ def self.update_search_paths(installer) projects = self.extract_projects(installer) projects.each do |project| + stable_umbrella_search_paths = project == installer.pods_project ? + [] : ReactNativePodsUtils.create_header_search_paths_for_stable_umbrellas("PODS_CONFIGURATION_BUILD_DIR") + project.build_configurations.each do |config| header_search_paths = config.build_settings["HEADER_SEARCH_PATHS"] ||= "$(inherited)" @@ -411,7 +418,7 @@ def self.update_search_paths(installer) "react/renderer/components/scrollview/platform/cxx", "react/renderer/components/scrollview/platform/ios", ], false)) - .concat(ReactNativePodsUtils.create_header_search_paths_for_stable_umbrellas("PODS_CONFIGURATION_BUILD_DIR")) + .concat(stable_umbrella_search_paths) .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-FabricComponents", "React_FabricComponents", [ "react/renderer/textlayoutmanager/platform/ios", "react/renderer/components/text/platform/cxx", @@ -435,6 +442,8 @@ def self.update_search_paths(installer) end installer.target_installation_results.pod_target_installation_results.each do |pod_name, target_installation_result| + self.set_stable_umbrella_search_paths(target_installation_result) + if self.react_native_pods.include?(pod_name) || pod_name.include?("Pod") || pod_name.include?("Tests") next end @@ -648,7 +657,9 @@ def self.add_search_path_if_not_included(current_search_paths, new_search_path) if current_search_paths.is_a?(String) current_search_paths = current_search_paths.strip - return "#{current_search_paths} #{new_search_path}" unless current_search_paths.include?(new_search_path) + current_paths = Shellwords.shellsplit(current_search_paths) + normalized_new_path = Shellwords.shellsplit(new_search_path).first + return "#{current_search_paths} #{new_search_path}" unless current_paths.include?(normalized_new_path) end if current_search_paths.is_a?(Array) @@ -659,10 +670,29 @@ def self.add_search_path_if_not_included(current_search_paths, new_search_path) current_search_paths end - def self.update_header_paths_if_depends_on(target_installation_result, dependency_name, header_paths) - depends_on_framework = target_installation_result.native_target.dependencies.any? { |d| d.name == dependency_name } + def self.target_depends_on?(target, dependency_name, visited_targets = {}) + return false if target == nil + + target_identifier = target.respond_to?(:uuid) ? target.uuid : target.object_id + target_identifier ||= target.object_id + return false if visited_targets[target_identifier] + + visited_targets[target_identifier] = true + target.dependencies.any? do |dependency| + dependency.name == dependency_name || + (dependency.respond_to?(:target) && self.target_depends_on?(dependency.target, dependency_name, visited_targets)) + end + end + + def self.update_header_paths_if_depends_on(target_installation_result, dependency_name, header_paths, include_transitive_dependencies: false) + native_target = target_installation_result.native_target + depends_on_framework = if include_transitive_dependencies + self.target_depends_on?(native_target, dependency_name) + else + native_target.dependencies.any? { |d| d.name == dependency_name } + end if depends_on_framework - target_installation_result.native_target.build_configurations.each do |config| + native_target.build_configurations.each do |config| header_search_path = config.build_settings["HEADER_SEARCH_PATHS"] != nil ? config.build_settings["HEADER_SEARCH_PATHS"] : "$(inherited)" header_paths.each { |header| header_search_path = ReactNativePodsUtils.add_search_path_if_not_included(header_search_path, header) } config.build_settings["HEADER_SEARCH_PATHS"] = header_search_path @@ -670,6 +700,25 @@ def self.update_header_paths_if_depends_on(target_installation_result, dependenc end end + def self.set_stable_umbrella_search_paths(target_installation_result) + return unless ReactNativeCoreUtils.build_rncore_from_source() + + ReactNativePodsUtils.stable_umbrella_frameworks.each do |pod_name, framework_name| + header_search_paths = ReactNativePodsUtils.create_header_search_path_for_frameworks( + "PODS_CONFIGURATION_BUILD_DIR", + pod_name, + framework_name, + [] + ).map { |search_path| "\"#{search_path}\"" } + ReactNativePodsUtils.update_header_paths_if_depends_on( + target_installation_result, + pod_name, + header_search_paths, + include_transitive_dependencies: true + ) + end + end + def self.set_rctfolly_search_paths(target_installation_result) ReactNativePodsUtils.update_header_paths_if_depends_on(target_installation_result, "RCT-Folly", [ "\"$(PODS_ROOT)/RCT-Folly\"", From bcee19d4c8f6d4b63a81437be7ba42157e1c0dcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Fri, 25 Sep 2026 04:24:12 -0700 Subject: [PATCH 2/3] Use public umbrellas in root headers Summary: Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled. Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers. Changelog: [Internal] Differential Revision: D120532145 --- .../renderer/components/root/RootComponentDescriptor.h | 2 +- .../react/renderer/components/root/RootProps.h | 8 ++------ .../react/renderer/components/root/RootShadowNode.h | 5 ++--- .../react-native/scripts/ios-prebuild/headers-config.js | 5 ++++- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/packages/react-native/ReactCommon/react/renderer/components/root/RootComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/root/RootComponentDescriptor.h index 07309a87af5..91868c76ce7 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/root/RootComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/root/RootComponentDescriptor.h @@ -9,8 +9,8 @@ #include +#include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/root/RootProps.h b/packages/react-native/ReactCommon/react/renderer/components/root/RootProps.h index 5a43e19ac60..9914e3b9839 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/root/RootProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/root/RootProps.h @@ -9,12 +9,8 @@ #include -#include - -#include -#include -#include -#include +#include +#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/root/RootShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/root/RootShadowNode.h index fa980b713d2..e3dc6d0b7ea 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/root/RootShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/root/RootShadowNode.h @@ -11,10 +11,9 @@ #include +#include +#include #include -#include -#include -#include namespace facebook::react { diff --git a/packages/react-native/scripts/ios-prebuild/headers-config.js b/packages/react-native/scripts/ios-prebuild/headers-config.js index de50c993878..bd4f5fa955f 100644 --- a/packages/react-native/scripts/ios-prebuild/headers-config.js +++ b/packages/react-native/scripts/ios-prebuild/headers-config.js @@ -185,7 +185,10 @@ const PodspecExceptions /*: {[key: string]: PodSpecConfiguration} */ = { { name: 'imagemanager', - headerPatterns: ['react/renderer/imagemanager/*.h'], + headerPatterns: [ + 'react/renderer/imagemanager/*.h', + 'react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageRequestParams.h', + ], headerDir: 'react/renderer/imagemanager', }, From 5e8c7a7b2da04c9113e0d56e5b64370d6797b37c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Fri, 25 Sep 2026 04:42:36 -0700 Subject: [PATCH 3/3] Use public umbrellas in textinput headers (#58587) Summary: Pull Request resolved: https://github.com/react/react-native/pull/58587 Route public React Native dependencies in exported TextInput framework headers through their supported umbrella headers. Preserve fine-grained includes for same-target, framework-tier, graphics, and third-party dependencies. Changelog: [Internal] Reviewed By: cipolleschi Differential Revision: D120677815 --- packages/react-native/Package.swift | 2 +- .../ReactCommon/React-FabricComponents.podspec | 4 ++-- .../renderer/components/textinput/BaseTextInputProps.h | 4 ++-- .../components/textinput/BaseTextInputShadowNode.h | 8 +++----- .../renderer/components/textinput/TextInputEventEmitter.h | 2 +- .../react/renderer/components/textinput/baseConversions.h | 3 +-- .../AndroidTextInputComponentDescriptor.h | 2 +- .../androidtextinput/AndroidTextInputEventEmitter.h | 2 +- .../components/androidtextinput/AndroidTextInputProps.h | 8 ++------ .../androidtextinput/AndroidTextInputShadowNode.h | 4 ++-- .../components/androidtextinput/AndroidTextInputState.h | 2 +- .../iostextinput/TextInputComponentDescriptor.h | 2 +- .../renderer/components/iostextinput/TextInputProps.h | 7 ++----- .../react/renderer/components/iostextinput/conversions.h | 3 +-- .../renderer/components/iostextinput/propsConversions.h | 5 ++--- 15 files changed, 23 insertions(+), 35 deletions(-) diff --git a/packages/react-native/Package.swift b/packages/react-native/Package.swift index 386ca6958b7..3de0dbaba87 100644 --- a/packages/react-native/Package.swift +++ b/packages/react-native/Package.swift @@ -553,7 +553,7 @@ let reactFabricTextInput = RNTarget( name: .reactFabricTextInput, path: "ReactCommon/react/renderer/components/textinput", excludedPaths: ["platform/android", "platform/macos"], - dependencies: [.reactNativeDependencies, .reactCore, .reactJsiExecutor, .reactTurboModuleCore, .jsi, .logger, .reactDebug, .reactFeatureFlags, .reactUtils, .reactRuntimeScheduler, .reactCxxReact, .yoga, .reactRendererDebug, .reactGraphics, .reactFabric, .reactTurboModuleBridging, .reactFabricTextLayoutManager], + dependencies: [.reactNativeDependencies, .reactCore, .reactJsiExecutor, .reactTurboModuleCore, .jsi, .logger, .reactDebug, .reactFeatureFlags, .reactUtils, .reactRuntimeScheduler, .reactCxxReact, .yoga, .reactRendererDebug, .reactGraphics, .reactFabric, .reactTurboModuleBridging, .reactFabricTextLayoutManager, .reactImageManagerApple], sources: [".", "platform/ios"] ) diff --git a/packages/react-native/ReactCommon/React-FabricComponents.podspec b/packages/react-native/ReactCommon/React-FabricComponents.podspec index ae7adc6ace1..97ca363151d 100644 --- a/packages/react-native/ReactCommon/React-FabricComponents.podspec +++ b/packages/react-native/ReactCommon/React-FabricComponents.podspec @@ -81,11 +81,11 @@ Pod::Spec.new do |s| add_dependency(s, "React-RCTFBReactNativeSpec") add_dependency(s, "React-rendererdebug") add_dependency(s, "React-graphics", :additional_framework_paths => ["react/renderer/graphics/platform/ios"]) + add_dependency(s, "React-ImageManager", :additional_framework_paths => ["react/renderer/imagemanager/platform/ios"]) add_dependency(s, "React-Fabric", :additional_framework_paths => [ "react/renderer/components/scrollview/platform/cxx", "react/renderer/components/scrollview/platform/ios", - "react/renderer/components/view/platform/cxx", - "react/renderer/imagemanager/platform/ios" + "react/renderer/components/view/platform/cxx" ]) depend_on_js_engine(s) diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h index df8d08b2bf6..f93a2639020 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h @@ -9,11 +9,11 @@ #include +#include +#include #include #include #include -#include -#include #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h index aa739ab422a..42cf11b0695 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h @@ -11,19 +11,17 @@ #include +#include +#include +#include #include #include #include #include #include -#include -#include -#include -#include #include #include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/TextInputEventEmitter.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/TextInputEventEmitter.h index 8c1a443f9e5..77e11f7934e 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/TextInputEventEmitter.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/TextInputEventEmitter.h @@ -9,8 +9,8 @@ #include +#include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/baseConversions.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/baseConversions.h index ef5972293e1..f203598b227 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/baseConversions.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/baseConversions.h @@ -9,9 +9,8 @@ #include +#include #include -#include -#include #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h index 49bb7e6fd07..538c5f03bfb 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h @@ -19,7 +19,7 @@ #include -#include +#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputEventEmitter.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputEventEmitter.h index d51b41a3058..1daca2beb1a 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputEventEmitter.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputEventEmitter.h @@ -9,7 +9,7 @@ #include -#include +#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h index 4f716680969..0fdb00bdd60 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h @@ -9,17 +9,13 @@ #include -#include -#include - +#include +#include #include #include #include #include -#include -#include #include -#include #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h index a5c113c6452..6d71e1ebc1d 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h @@ -13,9 +13,9 @@ #include "AndroidTextInputProps.h" #include "AndroidTextInputState.h" +#include +#include #include -#include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.h index 083ad10db87..c8b2784cb09 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.h @@ -13,8 +13,8 @@ #include #include +#include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h index 2af5a1f6e2e..a204398861c 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h @@ -9,8 +9,8 @@ #include +#include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.h index 1475b17584c..e7f1ca69673 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.h @@ -9,16 +9,13 @@ #include +#include +#include #include #include #include #include #include -#include -#include -#include -#include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/conversions.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/conversions.h index 99c11a3abec..f6a29012b5a 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/conversions.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/conversions.h @@ -9,9 +9,8 @@ #include +#include #include -#include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/propsConversions.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/propsConversions.h index 3f239f96cbe..51e668b46f2 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/propsConversions.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/propsConversions.h @@ -9,10 +9,9 @@ #include -#include +#include +#include #include -#include -#include namespace facebook::react {