rn-fetch-blob
rn-fetch-blob copied to clipboard
'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:

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
Sounds like it might be a library configuration issue. Are you using the new podfile base autolinking?
Yes we use the podfile base autolinking. We now downgraded to version 0.60 and now it works :) Seems like it is only an issue with version 0.61 and above
is there a way to fix it for 0.61.2 we have exactly the same issue?
actually downgrading to 0.60.6 didn't solve a problem for us :(
Do native libraries work at all for you? For example, can you successfully use something like react-native-webview
?
Also, if you have an old version of Xcode, you may need to update it to at least 10.
I found a work around by adding a condition in the import:
#if __has_include("RCTDefines.h")
#import "RCTDefines.h"
#else
#import <React/RCTBridgeModule.h>
#endif
I am seeing this as well.
This is being caused by a few of our dependencies which don't support auto linking (they're linked manually).
@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
).
Following. We are facingn the same issue
@josectobar
Ok, I managed to fix it (for me, at least). What you do is the following:
- Go to Project navigator > Libraries > RNFetchBlob.xcodeproj
- Click on Build Settings and then the first item under "Targets"
- Scroll down to 'Search Paths'
- Double click to edit the 'Header Search Paths'
- Add the following entry (click '+'):
${SRCROOT}/../../../ios/Pods/Headers
. Make sure to set it torecursive
. - 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/
Ok, I managed to fix it (for me, at least). What you do is the following:
- Go to Project navigator > Libraries > RNFetchBlob.xcodeproj
- Click on Build Settings and then the first item under "Targets"
- Scroll down to 'Search Paths'
- Double click to edit the 'Header Search Paths'
- Add the following entry (click '+'):
${SRCROOT}/../../../ios/Pods/Headers
. Make sure to set it torecursive
.- 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 theios/Pods/Headers/
To sum up, I'll update my workaround here: https://github.com/facebook/react-native/issues/26665#issuecomment-571082076
Ok, I managed to fix it (for me, at least). What you do is the following:
- Go to Project navigator > Libraries > RNFetchBlob.xcodeproj
- Click on Build Settings and then the first item under "Targets"
- Scroll down to 'Search Paths'
- Double click to edit the 'Header Search Paths'
- Add the following entry (click '+'):
${SRCROOT}/../../../ios/Pods/Headers
. Make sure to set it torecursive
.- 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 theios/Pods/Headers/
Did anyone got this error while trying this solution?
I have the same issue. React-Native: 0.62.2 React: 16.11.0 rn-fetch-blob: 0.12.0
Recursive option was also set
Having the same issue with react-native-passcode-auth:
"react": "16.11.0",
"react-native": "0.62.2",
"react-native-passcode-auth": "^1.0.0",
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.
Any updates ?
any updates ?
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:
- removing
libRNFetchBlob.a
fromYour_Project_Name > General > Frameworks, Libraries, and Embedded Content
(assuming you following the manual linked guide like I did) - 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
- run
pod install
from theios
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: