Yossi
Yossi

Reputation: 6027

RCTConvert.h: 'yoga/Yoga.h' file not found

Same problem as in yoga/yoga.h file not found RCTConvert.h but the answer there doesn't help.

I am using Xcode 11.3 on macOS Catalina (10.15.4), react-native 0.62.2, and getting this error when I try to build.

Any idea what I should do?

The import statement in RCTConvert.h:

#import <yoga/Yoga.h>

Files' locations

 ./node_modules/react-native/React/Base/RCTConvert.h
 ./node_modules/react-native/ReactCommon/yoga/yoga/Yoga.h

Build settings -> Header Search Path

As you can see below, I tried to add the yoga directory. Didn't help.

Build settings -> Header Search Path

This is my podfile:

platform :ios, '11.0'

target 'xxx' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  permissions_path = '../node_modules/react-native-permissions/ios'

  pod 'FBLazyVector', :path => "../node_modules/react-native/Libraries/FBLazyVector"
  pod 'FBReactNativeSpec', :path => "../node_modules/react-native/Libraries/FBReactNativeSpec"
  pod 'RCTRequired', :path => "../node_modules/react-native/Libraries/RCTRequired"
  pod 'RCTTypeSafety', :path => "../node_modules/react-native/Libraries/TypeSafety"
  pod 'React', :path => '../node_modules/react-native/'
  pod 'React-Core', :path => '../node_modules/react-native/'
  pod 'React-CoreModules', :path => '../node_modules/react-native/React/CoreModules'
  pod 'React-Core/DevSupport', :path => '../node_modules/react-native/'

  pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS'
  pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation'
  pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob'
  pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings'
  pod 'React-RCTImage', :path => '../node_modules/react-native/Libraries/Image'
  pod 'React-RCTLinking', :path => '../node_modules/react-native/Libraries/LinkingIOS'
  pod 'React-RCTNetwork', :path => '../node_modules/react-native/Libraries/Network'
  pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text'
  pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration'
  pod 'React-Core/RCTWebSocket', :path => '../node_modules/react-native/'
  pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact'
  pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'
  pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'
  pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'
  pod 'ReactCommon/callinvoker', :path => "../node_modules/react-native/ReactCommon"
  pod 'ReactCommon/turbomodule/core', :path => "../node_modules/react-native/ReactCommon"

  pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga', :modular_headers => true
  pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
  pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
  pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'

  # Pods for xxx
  pod 'RNSquareInAppPayments', :path => '../node_modules/react-native-square-in-app-payments'
  pod 'BVLinearGradient', :path => '../node_modules/react-native-linear-gradient'
  pod 'react-native-nfc-manager', :path => '../node_modules/react-native-nfc-manager'

  target 'xxxTests' do
    inherit! :search_paths
    # Pods for testing
  end

end

target 'xxx-tvOS' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for xxx-tvOS

  target 'xxx-tvOSTests' do
    inherit! :search_paths
    # Pods for testing
  end

end

Upvotes: 3

Views: 2303

Answers (2)

D-Nice
D-Nice

Reputation: 4870

In my case, I was able to resolve this problem by updating to the latest version of cocoapods (from 1.5.0 to 1.10.0).

You can check which version of cocoapods you have installed with this command: gem which cocoapods

Upvotes: 1

Yossi
Yossi

Reputation: 6027

I ended with the following podfile, which is working:

platform :ios, '11.1'
require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'

target 'xxx' do
  # Pods for xxx
  config = use_native_modules!
  use_react_native!(:path => config["reactNativePath"])

  pod 'react-native-netinfo', :path => '../node_modules/@react-native-community/netinfo'

  pod 'RNCAsyncStorage', :path => '../node_modules/@react-native-community/async-storage'

  pod 'react-native-restart', :path => '../node_modules/react-native-restart'

  pod 'react-native-blur', :path => '../node_modules/@react-native-community/blur'

  pod 'RNSentry', :path => '../node_modules/@sentry/react-native'

  pod 'react-native-version-info', :path => '../node_modules/react-native-version-info'

  pod 'react-native-splash-screen', :path => '../node_modules/react-native-splash-screen'

  target 'xxxTests' do
    inherit! :complete
    # Pods for testing
  end

  # Enables Flipper.
  #
  # Note that if you have use_frameworks! enabled, Flipper will not work and
  # you should disable these next few lines.
  use_flipper!
  post_install do |installer|
    flipper_post_install(installer)
  end
end

target 'xxx-tvOS' do
  # Pods for xxx-tvOS

  target 'xxx-tvOSTests' do
    inherit! :search_paths
    # Pods for testing
  end
end

Upvotes: 1

Related Questions