From 1b9e38b7f6a7a4850683e16bc7217d95b7d3f8d6 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Fri, 21 Mar 2025 05:35:23 -0700 Subject: [PATCH] Add React-renderercss dependency for 3p libs Summary: Third party libraries depend transitively agains the React-renderercss modules because it is imported by Fabric. Without this change, the use_frameworks on iOS does not works when a 3P library is imported. This changes fix the behavior and we need to cherry pick them in 0.79. ## Changelog: [iOS][Fixed] - Make sure 3p libraries depends on React-renderercss to work with use_frameworks Differential Revision: D71618395 --- packages/react-native/scripts/cocoapods/new_architecture.rb | 2 ++ packages/react-native/scripts/cocoapods/utils.rb | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/react-native/scripts/cocoapods/new_architecture.rb b/packages/react-native/scripts/cocoapods/new_architecture.rb index 7de3d48a9969..f7e95ac5aa79 100644 --- a/packages/react-native/scripts/cocoapods/new_architecture.rb +++ b/packages/react-native/scripts/cocoapods/new_architecture.rb @@ -92,6 +92,7 @@ def self.install_modules_dependencies(spec, new_arch_enabled, folly_version = He .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-debug", "React_debug", [])) .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-ImageManager", "React_ImageManager", [])) .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-rendererdebug", "React_rendererdebug", [])) + .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-renderercss", "React_renderercss", [])) .each { |search_path| header_search_paths << "\"#{search_path}\"" } @@ -127,6 +128,7 @@ def self.install_modules_dependencies(spec, new_arch_enabled, folly_version = He spec.dependency "React-ImageManager" spec.dependency "React-rendererdebug" spec.dependency 'React-jsi' + spec.dependency 'React-renderercss' depend_on_js_engine(spec) add_rn_third_party_dependencies(spec) diff --git a/packages/react-native/scripts/cocoapods/utils.rb b/packages/react-native/scripts/cocoapods/utils.rb index 3dffa31b914a..662ffd3d4f2e 100644 --- a/packages/react-native/scripts/cocoapods/utils.rb +++ b/packages/react-native/scripts/cocoapods/utils.rb @@ -291,7 +291,8 @@ def self.create_header_search_path_for_frameworks(base_folder, pod_name, framewo # Add a new dependency to an existing spec, configuring also the headers search paths def self.add_dependency(spec, dependency_name, base_folder_for_frameworks, framework_name, additional_paths: [], version: nil, subspec_dependency: nil) # Update Search Path - optional_current_search_path = spec.to_hash["pod_target_xcconfig"]["HEADER_SEARCH_PATHS"] + current_pod_target_xcconfig = spec.to_hash["pod_target_xcconfig"] ? spec.to_hash["pod_target_xcconfig"] : {} + optional_current_search_path = current_pod_target_xcconfig["HEADER_SEARCH_PATHS"] current_search_paths = (optional_current_search_path != nil ? optional_current_search_path : "") .split(" ") create_header_search_path_for_frameworks(base_folder_for_frameworks, dependency_name, framework_name, additional_paths) @@ -299,7 +300,6 @@ def self.add_dependency(spec, dependency_name, base_folder_for_frameworks, frame wrapped_path = "\"#{path}\"" current_search_paths << wrapped_path } - current_pod_target_xcconfig = spec.to_hash["pod_target_xcconfig"] current_pod_target_xcconfig["HEADER_SEARCH_PATHS"] = current_search_paths.join(" ") spec.pod_target_xcconfig = current_pod_target_xcconfig