rn-fetch-blob: 'React/RCTDefines.h' file not found

Hi,

Installed Versions:

  • “react-native”: “0.61.2”
  • “rn-fetch-blob”: “^0.11.2”

we recently upgraded from react-native version 0.59 to 0.61 and now the rn-fetch-blob library no longer works with XCode, we get the following errors when trying to build the project:

Screenshot 2019-10-11 at 5 47 33 PM

In the error stack trace it says that the error originates from node_modules/rn-fetch-blob/ios/RNFetchBlob/RNFetchBlob.h:22

Any ideas or pointers on how we can solve this issue?

Thanks in advance for your support.

Best regards, Thomas

About this issue

  • Original URL
  • State: open
  • Created 5 years ago
  • Reactions: 9
  • Comments: 18

Commits related to this issue

Most upvoted comments

Ok, I managed to fix it (for me, at least). What you do is the following:

  1. Go to Project navigator > Libraries > RNFetchBlob.xcodeproj
  2. Click on Build Settings and then the first item under “Targets”
  3. Scroll down to ‘Search Paths’
  4. Double click to edit the ‘Header Search Paths’
  5. Add the following entry (click ‘+’): ${SRCROOT}/../../../ios/Pods/Headers. Make sure to set it to recursive.
  6. Clean (cmd + shift + K) and re-build (cmd + B)

Repeat for other libraries that complain about missing React/<whatever>.h files, perhaps with differing amounts of ../ before the ios/Pods/Headers/

@josectobar Where are you adding that workaround? If I replace the error line in the OP with that, I just get new errors ('React/RCTAssert.h' file not found).

Ok, I managed to fix it (for me, at least). What you do is the following:

  1. Go to Project navigator > Libraries > RNFetchBlob.xcodeproj
  2. Click on Build Settings and then the first item under “Targets”
  3. Scroll down to ‘Search Paths’
  4. Double click to edit the ‘Header Search Paths’
  5. Add the following entry (click ‘+’): ${SRCROOT}/../../../ios/Pods/Headers. Make sure to set it to recursive.
  6. Clean (cmd + shift + K) and re-build (cmd + B)

Repeat for other libraries that complain about missing React/<whatever>.h files, perhaps with differing amounts of ../ before the ios/Pods/Headers/

Did anyone got this error while trying this solution? Screen Shot 2020-03-28 at 12 44 14 PM

I have the same issue. React-Native: 0.62.2 React: 16.11.0 rn-fetch-blob: 0.12.0

image

image

Recursive option was also set image

After following the ${SRCROOT}/../../../ios/Pods/Headers I ran into another issue with duplicate symbols.

Anyone have any ideas how to fix this? 🤔 (Edit: fix is down below 👇🏾 )

❌  duplicate symbol '_OBJC_CLASS_$_RNFetchBlob' in
┌─ librn-fetch-blob.a(RNFetchBlob.o)
└─ libRNFetchBlob.a(RNFetchBlob-a70a61ec5fbdd003117a6dd9c81d14ef.o)

❌  duplicate symbol '_OBJC_METACLASS_$_RNFetchBlob' in
┌─ librn-fetch-blob.a(RNFetchBlob.o)
└─ libRNFetchBlob.a(RNFetchBlob-a70a61ec5fbdd003117a6dd9c81d14ef.o)

❌  ld: 73 duplicate symbols for architecture arm64

❌  clang: error: linker command failed with exit code 1 (use -v to see invocation)

...

Edit (fix found 🚀 ): Here’s the fix:

  1. removing libRNFetchBlob.a from Your_Project_Name > General > Frameworks, Libraries, and Embedded Content (assuming you following the manual linked guide like I did)
  2. adding the pod directly to my share extension in my Podfile:
target 'py_project-share-extension' do
  use_react_native!(
    :hermes_enabled => false,
    :flipper_configuration => flipper_config
  )

  pod 'rn-fetch-blob', :path => '../node_modules/rn-fetch-blob'
end
  1. run pod install from the ios folder 🤞🏾

The issue seemed to be that because I was already linking the pods directly (see pic below) I didn’t need to manually add the libRNFetchBlob.a file. Here’s what my final frameworks section looked like:

Screenshot 2023-05-29 at 11 14 51 PM

Hi @judygab, I tried your solution and got the errors you mentioned above too. Did you solve it already? If so, can you please tell me how? Thanks in advance.