找不到'React / RCTEventEmitter.h'文件(CocoaPods)

时间:2018-11-28 16:45:28

标签: react-native cocoapods react-native-ios

我要返回一个React Native项目并遇到以下构建错误:

'React/RCTEventEmitter.h' file not found

该项目使用CocoaPods引入React及其依赖项。该错误似乎与我的自定义模块之一中缺少标头有关。出现导入错误的特定行位于https://github.com/adamski/react-native-couchbase/blob/8bc089a1e4cfdf62599b1f156072aa12a3823b30/ios/RCTCouchBase/RCTCouchBase/RCTCouchBase.h#L8

仅在添加新的节点模块并运行pod install之后,该错误才开始出现。

我已经尝试了各种方法来修复它,例如:

  • 升级RN(从0.51升级到0.55,然后再次还原)
  • 删除并重新安装node_modules
  • 将各种路径添加到标题搜索路径。例如${PODS_ROOT}/Headers/Public/React
  • 删除构建文件夹

如果我将导入更改为#import "RCTEventEmitter",则它将落入:

'React/RCTBridge.h' file not found 来自RCTEventEmitter.h

这里还有其他可能出错的地方吗?

我最近不得不为另一个项目升级到Xcode 10,也许这是一个问题吗?

Podfile:

react_native_path = '../../node_modules/react-native'
install! 'cocoapods', :deterministic_uuids => false

platform :ios, '8.0'
target 'MyApp - App' do

    pod 'HockeySDK', '~> 4.1.3'

    pod 'React', :path => '../../node_modules/react-native', :subspecs => [
        'ART',
        'Core',
        'RCTImage',    
        'RCTLinkingIOS',
        'RCTNetwork',
        'RCTText',
        'RCTWebSocket',
        'RCTAnimation',
        'DevSupport',
        'BatchedBridge',
    # Add any other subspecs you want to use in your project
    ]
    # To use CocoaPods with React Native, you need to add this specific Yoga spec as well
    pod 'yoga', :path => react_native_path + '/ReactCommon/yoga'

    pod 'couchbase-lite-ios', '~> 1.4.0' 
    pod 'couchbase-lite-ios/ForestDB', '~> 1.4.0'
    pod 'mp3lame-for-ios'
    pod 'ReactNativeCouchbase',      :path => '../../node_modules/react-native-couchbase'
    pod 'ReactNativeNavigation',     :path => '../../node_modules/react-native-navigation'
    pod 'RNVectorIcons',             :path => '../../node_modules/react-native-vector-icons'
    pod 'RNSVG',                     :path => '../../node_modules/react-native-svg'
    pod 'RNDeviceInfo',              :path => '../../node_modules/react-native-device-info'
    pod 'react-native-in-app-utils', :path => '../../node_modules/react-native-in-app-utils'
    pod 'react-native-mail',         :path => '../../node_modules/react-native-mail'
    pod 'BVLinearGradient',          :path => '../../node_modules/react-native-linear-gradient'
    pod 'RNSound',                   :path => '../../node_modules/react-native-sound'
    pod 'react-native-youtube',      :path => '../../node_modules/react-native-youtube'
    pod 'RNStoreReview',             :path => '../../node_modules/react-native-store-review/ios'

end

1 个答案:

答案 0 :(得分:1)

我在更新时也遇到了此错误。要解决它:

1)我从pod文件中删除了React依赖关系和所有node_modules依赖关系。

注意:似乎react-native链接有时会给pod文件带来一些node_modules依赖关系,从而使构建崩溃。我试图避免Pod文件中包含任何node_module deps。直到现在,我还没有找到一种方法来使用Pod文件中的任何node_module deps构建项目。

2)我手动添加或检查了Xcode中所有必需的依赖项。

反应和其他一些在项目目标标头搜索路径中列出:

enter image description here

依赖关系在Xcode-> Libraries中列出:

....

enter image description here

....

在Project目标->常规->链接的框架和库中。

我必须逐步进行,首先修复React deps,然后修复崩溃的库。

我在更新到0.57时做了类似的事情。

我不得不清理缓存并重新构建很多次。 RN的每次更新对我来说也是一个挑战。

我的依赖项:

RN 0.57.1
Xcode 10.1