Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix duplicate entries in HEADER_SEARCH_PATHS when running react_nativ…
…e_post_install script (#46262) Summary: In a react native project where USE_FRAMEWORKS is not nil, every time when running `pod install`, duplicate lines are added to `HEADER_SEARCH_PATHS` section of `project.pbxproj`: ``` " ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers", " ${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx", " ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers", " ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers", " ${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx", " ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers", " ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers", " ${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx", " ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers", ``` Note: a popular library that needs `use_frameworks` is react-native-firebase. See https://rnfirebase.io/#altering-cocoapods-to-use-frameworks ## Analyse - `react_native_post_install` calls `ReactNativePodsUtils.update_search_paths(installer)` - when `ENV['USE_FRAMEWORKS'] != nil` then `update_search_paths` calls `add_search_path_if_not_included` - `add_search_path_if_not_included` checks if `"#{new_search_path}"` is already there - if not found it adds `" #{new_search_path}"` _with an extra space_ - next time, it can't find `"#{new_search_path}"` because of the extra space, and adds `" #{new_search_path}"` again ## Changelog: [IOS] [FIXED] - react_native_post_install script no longer adds duplicate entries to HEADER_SEARCH_PATHS Pull Request resolved: #46262 Test Plan: - create a react native project - add `use_frameworks! :linkage => :static` to `ios/Podfile` (just before `use_react_native`) - run `pod install` - assert no duplicate lines are added to HEADER_SEARCH_PATHS of file `project.pbxproj` Reviewed By: cipolleschi Differential Revision: D61982680 Pulled By: shwanton fbshipit-source-id: 61b566893c551d0813edd6eec2f8352c041c748f
- Loading branch information