@@ -670,10 +670,29 @@ def self.add_search_path_if_not_included(current_search_paths, new_search_path)
670670 current_search_paths
671671 end
672672
673- def self . update_header_paths_if_depends_on ( target_installation_result , dependency_name , header_paths )
674- depends_on_framework = target_installation_result . native_target . dependencies . any? { |d | d . name == dependency_name }
673+ def self . target_depends_on? ( target , dependency_name , visited_targets = { } )
674+ return false if target == nil
675+
676+ target_identifier = target . respond_to? ( :uuid ) ? target . uuid : target . object_id
677+ target_identifier ||= target . object_id
678+ return false if visited_targets [ target_identifier ]
679+
680+ visited_targets [ target_identifier ] = true
681+ target . dependencies . any? do |dependency |
682+ dependency . name == dependency_name ||
683+ ( dependency . respond_to? ( :target ) && self . target_depends_on? ( dependency . target , dependency_name , visited_targets ) )
684+ end
685+ end
686+
687+ def self . update_header_paths_if_depends_on ( target_installation_result , dependency_name , header_paths , include_transitive_dependencies : false )
688+ native_target = target_installation_result . native_target
689+ depends_on_framework = if include_transitive_dependencies
690+ self . target_depends_on? ( native_target , dependency_name )
691+ else
692+ native_target . dependencies . any? { |d | d . name == dependency_name }
693+ end
675694 if depends_on_framework
676- target_installation_result . native_target . build_configurations . each do |config |
695+ native_target . build_configurations . each do |config |
677696 header_search_path = config . build_settings [ "HEADER_SEARCH_PATHS" ] != nil ? config . build_settings [ "HEADER_SEARCH_PATHS" ] : "$(inherited)"
678697 header_paths . each { |header | header_search_path = ReactNativePodsUtils . add_search_path_if_not_included ( header_search_path , header ) }
679698 config . build_settings [ "HEADER_SEARCH_PATHS" ] = header_search_path
@@ -691,7 +710,12 @@ def self.set_stable_umbrella_search_paths(target_installation_result)
691710 framework_name ,
692711 [ ]
693712 ) . map { |search_path | "\" #{ search_path } \" " }
694- ReactNativePodsUtils . update_header_paths_if_depends_on ( target_installation_result , pod_name , header_search_paths )
713+ ReactNativePodsUtils . update_header_paths_if_depends_on (
714+ target_installation_result ,
715+ pod_name ,
716+ header_search_paths ,
717+ include_transitive_dependencies : true
718+ )
695719 end
696720 end
697721
0 commit comments