找不到React / RCTDefines.h'文件(RN0.61)

汤米·梁

从RN0.60升级到RN0.61。由于以下问题,iOS编译失败:

/react-native/React/Base/RCTBridgeModule.h:10:9: 'React/RCTDefines.h' file not found

我知道这种重大变化(不建议使用React.xcodeproj)

尝试几件事

  1. npx react-native-clean-project&重新设置项目
  2. 删除Pods /&Pod安装
  3. 没了主意

这是我的Podfile的样子。

  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-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-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings'
  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/jscallinvoker', :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'

  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'

  # Required by RNFirebase
  pod 'Firebase/Core', '~> 6.9.0'
  pod 'RNFirebase', :path => '../node_modules/react-native-firebase/ios'
  pod 'Fabric', '~> 1.10.2'
  pod 'Crashlytics', '~> 3.14.0'

  # FBSDK
  pod 'react-native-fbsdk', :path => '../node_modules/react-native-fbsdk'

  pod 'react-native-netinfo', :path => '../node_modules/@react-native-community/netinfo'
  pod 'react-native-image-picker', :path => '../node_modules/react-native-image-picker'
  pod 'react-native-splash-screen', :path => '../node_modules/react-native-splash-screen'
  pod 'react-native-webview', :path => '../node_modules/react-native-webview'
汤米·梁

这是我花了整整一天的时间寻找原因的解决方案




TLDR;

您需要为抱怨无法找到React / {whatever.h}的第3方/自定义库添加.podspec到podfile中


第三方图书馆

如果您使用的是第三方库(Yarn / NPM / etc)

  1. 从其他第三方库(例如,RNDeviceInfo /等)中复制podspec。

  2. 通过替换一些项目(s.name,s.source)来创建自己的podspec我实际上将其他项目保留为默认值,但是如果需要,您可以根据使用情况进行修改

s.name         = "NoSupportedLib"
s.source       = { :git => "https://github.com/react-native-community/NoSupportedLibName.git", :tag => "v#{s.version}" }

您可能需要注意以下事项,因为并非您的所有依赖项都可能存储在文件夹路径下 ios/**/your.m & your.h files

s.source_files  = "ios/**/*.{h,m}"
  1. 将新行添加到podfile pod 'NoSupportedLib', :path => '../node_modules/NoSupportedLib'

  2. 吊舱安装

本地依赖

如果您具有本地依赖项,则也应执行相同操作(而不是将.a文件添加到Xcode的链接框架和库中。)

  1. 遵循上面介绍的相同步骤
  2. 在声明s.source和s.source_files的第2步中,您应该执行以下操作:(假设您要在同一自定义库路径中创建此custom.podspec,否则,您需要将s.source路径修改为需要)
s.source            = { :http => 'file:' + __dir__ + '/' }
s.source_files  = "customLib/*.{h,m}"
  1. 将新行添加到podfile
pod 'customLib', :path => '../localDependency/customLib'


子点

我试图在我的计划下添加React作为构建目标,显然没有帮助。我认为对于> = RN0.60的项目,我们打算使用ReactNative提供的自动链接?因此,保持我们的Xcode的链接框架和库干净。在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章