Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

'React/RCTDefines.h' file not found #461

Open
tzwickl opened this issue Oct 11, 2019 · 18 comments
Open

'React/RCTDefines.h' file not found #461

tzwickl opened this issue Oct 11, 2019 · 18 comments

Comments

@tzwickl
Copy link

tzwickl commented Oct 11, 2019

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

@alpha0010
Copy link

Sounds like it might be a library configuration issue. Are you using the new podfile base autolinking?

@tzwickl
Copy link
Author

tzwickl commented Oct 11, 2019

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

@romk1n
Copy link

romk1n commented Oct 22, 2019

is there a way to fix it for 0.61.2 we have exactly the same issue?

@romk1n
Copy link

romk1n commented Oct 22, 2019

actually downgrading to 0.60.6 didn't solve a problem for us :(

@alpha0010
Copy link

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.

@josectobar
Copy link

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

@rcidt
Copy link

rcidt commented Oct 31, 2019

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).

@herstand
Copy link

herstand commented Nov 4, 2019

@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).

@eyalabadi98
Copy link

Following. We are facingn the same issue
@josectobar

@infostreams
Copy link

infostreams commented Nov 13, 2019

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/

@luatnd
Copy link

luatnd commented Jan 3, 2020

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/

To sum up, I'll update my workaround here:
facebook/react-native#26665 (comment)

@judygab
Copy link

judygab commented Mar 28, 2020

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

gigby pushed a commit to Warecorp/rn-fetch-blob that referenced this issue Apr 29, 2020
@ram95krishh
Copy link

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

@joeyBerger
Copy link

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

@ravinalamada
Copy link

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.

@gokugen
Copy link

gokugen commented Apr 2, 2023

Any updates ?

@saeedtkh
Copy link

saeedtkh commented May 6, 2023

any updates ?

@megancooper
Copy link

megancooper commented May 30, 2023

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests