react-native icon indicating copy to clipboard operation
react-native copied to clipboard

HEADER_SEARCH_PATHS concatenation issue

Open hamidhadi opened this issue 7 months ago • 13 comments

New Version

0.72.6

Old Version

0.70.5

Build Target(s)

iOS simulator

Output of react-native info

System: OS: macOS 14.1.1 CPU: (10) arm64 Apple M1 Pro Memory: 812.52 MB / 32.00 GB Shell: version: "5.9" path: /bin/zsh Binaries: Node: version: 16.14.0 path: ~/.nvm/versions/node/v16.14.0/bin/node Yarn: version: 1.22.21 path: ../node_modules/.bin/yarn npm: version: 8.3.1 path: ~/.nvm/versions/node/v16.14.0/bin/npm Watchman: Not Found Managers: CocoaPods: version: 1.14.3 path: /opt/homebrew/bin/pod SDKs: iOS SDK: Platforms: - DriverKit 23.0 - iOS 17.0 - macOS 14.0 - tvOS 17.0 - watchOS 10.0 Android SDK: API Levels: - "26" - "28" - "29" - "30" - "31" - "32" - "33" - "34" - "34" Build Tools: - 28.0.3 - 29.0.2 - 30.0.2 - 30.0.3 - 31.0.0 - 32.0.0 - 32.1.0 - 33.0.0 - 34.0.0 System Images: - android-30 | Intel x86_64 Atom - android-30 | Google APIs Intel x86 Atom - android-32 | Google APIs ARM 64 v8a - android-32 | Google Play ARM 64 v8a - android-33 | Google APIs ARM 64 v8a - android-33 | Google Play ARM 64 v8a - android-34 | Google Play ARM 64 v8a Android NDK: Not Found IDEs: Android Studio: 2022.3 AI-223.8836.35.2231.11090377 Xcode: version: 15.0.1/15A507 path: /usr/bin/xcodebuild Languages: Java: version: 11.0.21 path: ../.jenv/shims/javac Ruby: version: 2.6.10 path: /usr/bin/ruby npmPackages: "@react-native-community/cli": Not Found react: installed: 18.2.0 wanted: 18.2.0 react-native: installed: 0.72.6 wanted: 0.72.6 react-native-macos: Not Found npmGlobalPackages: "react-native": Not Found Android: hermesEnabled: true newArchEnabled: false iOS: hermesEnabled: true newArchEnabled: false

Issue and Reproduction Steps

After upgrading to the new version, we also upgraded our RNFirebase module which requires Cocoapods to use framework. As a result of these changes, whenever I run pod install, I see new changes in my Xcode HEADER_SEARCH_PATHS. It seems that you are concatenating the search paths with the previous ones. Probably in this script.

image

hamidhadi avatar Nov 30 '23 12:11 hamidhadi

:warning: Missing Reproducible Example
:information_source: We could not detect a reproducible example in your issue report. Please provide either:
  • If your bug is UI related: a Snack
  • If your bug is build/update related: use our Reproducer Template. A reproducer needs to be in a GitHub repository under your username.

github-actions[bot] avatar Nov 30 '23 12:11 github-actions[bot]

Hi @hamidhadi, thanks for the report. I'll look into it. What is the pod that is getting multiple HEADER_SEARCH_PATHS?

The link you added refers to a function called get_react_codegen_spec that we use internally to create the React-Codegen podspec on the flight. So it is regenerated at every pod install, and therefore the search_path should not concatenate. I suspect for the issue to happen in some other podspec.

cipolleschi avatar Nov 30 '23 14:11 cipolleschi

PSA: I'll be on PTO from tomorrow until the 12th of December.

cipolleschi avatar Dec 01 '23 12:12 cipolleschi

I'm experiencing the same issue (most probably after updating to React Native 0.73.0, but we've also bumped other dependencies).

				HEADER_SEARCH_PATHS = (
					"$(inherited)",
					"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers",
					"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core",
					"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers/platform/ios",
					"${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers",
					"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios",
					" ${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",
+					" ${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",
				);

This concatenation happens in every configuration (Debug, Release) after running pod install.

It seems that after removing the Pods_Kaartje2go.framework build phase (under Link Binary With Libraries), this concatenation does not happen.

annuh avatar Dec 11 '23 18:12 annuh

@annuh Could you share on which target it is happening? Could any of you prepare a repro using https://github.com/react-native-community/reproducer-react-native? Otherwise it is really hard for me to help you out, because I am not able to reproduce this behavior locally.

cipolleschi avatar Dec 18 '23 14:12 cipolleschi

@cipolleschi I've created a reproducer here: https://github.com/annuh/reproducer-react-native.

I believe it's related to an old/correct installation of RN Firebase, since I fixed the issue by reinstalling the Firebase library.

The HEADER_SEARCH_PATHS in my original ./ios/AwesomeProject.xcodeproj/project.pbxproj contained this:

HEADER_SEARCH_PATHS = (
   "$(inherited)",
   "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers",
   "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core",
   "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers/platform/ios",
   "${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers",
   "${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios",
);

This happened after a pod install:

HEADER_SEARCH_PATHS = (
   "$(inherited)",
   "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers",
   "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core",
   "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers/platform/ios",
   "${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers",
   "${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios",
+  " ${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",
);

However, when I reinstalled RN Firebase completely in a new project, the HEADER_SEARCH_PATHS contained this:

HEADER_SEARCH_PATHS = (
   "$(inherited)",
   "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers", #
   "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core",
   "${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-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",

So a pod install added all the 'missing'(?) folders, which is probably correct 🙂
The problem is that it adds these lines with a trailing (whitespace), so these folders are added after every pod install.

annuh avatar Dec 22 '23 06:12 annuh

I experience the concatenation since upgrading to react-native 0.73.2. After every pod install the following lines are added to my project:

" ${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",

dylancom avatar Jan 16 '24 16:01 dylancom

Are these repeated multiple times? Because it is expected for you to have these 3 new lines.

If they are repeated, try to run: bundle exec pod deintegrate to cleanup the Pod structure and then rerun: bundle eexec pod install to reinstall it.

cipolleschi avatar Jan 16 '24 17:01 cipolleschi

Yes there are repeated. It seems that pod deintegrate fixed it! Thanks!

dylancom avatar Jan 16 '24 18:01 dylancom

Had the same issue after updating react-native from v0.72.6 to v.073.2. The only thing that prevented subsequent install pods steps from adding the same 3 lines again was to manually edit the project.pbxproj file and remove the empty spaces added at the beginning of each of the 3 lines.

d-moreira avatar Jan 18 '24 12:01 d-moreira

Despite upgrading react-native-firebase as per @annuh’s suggestion, I still encountered the issue of duplicated concatenation and white space prefix at HEADER_SEARCH_PATHS.

My current workaround:

  • [ ] Run pod deintegrate to resolve duplicated concatenation issue.
  • [ ] Then remove white space prefix at HEADER_SEARCH_PATHS

zcmgyu avatar Feb 02 '24 15:02 zcmgyu

I noticed that these lines start with spaces. I removed spaces and it helped. 🎉

Bardiamist avatar Feb 07 '24 11:02 Bardiamist

Removing the spaces is definitely going to fix it, it is better though to replace the HEADER_SEARCH_PATHS with

HEADER_SEARCH_PATHS = (
"$(inherited)",
);

then run pod install in the ios directory, this will generate the correct paths again, for some reason pod deintegrate doesn't do this

mhyassin avatar Feb 20 '24 12:02 mhyassin