在React Native 0.60中从FBSDK找不到'React / RCTViewManager.h'文件

时间:2019-09-10 13:26:07

标签: ios react-native react-native-ios react-native-fbsdk

我最近将react-native升级到了0.60版本。结果,我的Podfile看起来像这样:

target 'myProject' do
  # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
  # use_frameworks!

  # Pods for myProject
   # this is very important to have!
    rn_path = '../node_modules/react-native'

    pod 'React', :path => '../node_modules/react-native'
    pod 'React-Core', :path => '../node_modules/react-native/React'
    pod 'React-DevSupport', :path => '../node_modules/react-native/React'
    ...
    pod 'FBSDKCoreKit'
    pod 'FBSDKLoginKit'
    pod 'FBSDKShareKit'

项目依赖项之一是FBSDK,如上所示。 问题在于该依赖项依赖于React pod而不是React-Core,因此构建失败,因为使用路径React / Module找不到某些模块:

Xcode,文件RCTFBSDKMessageDialog.h(来自pod react-native-fbsdk):

#import <React/RCTBridgeModule.h>
#import <FBSDKShareKit/FBSDKShareKit.h>

@interface RCTFBSDKMessageDialog : NSObject <RCTBridgeModule>
@end

我收到错误:找不到错误的'React / RCTBridgeModule.h'文件

如果我将其更改为React-Core / React / RCTBridgeModule.h,它将起作用。

有什么想法可以在不重命名所有引用的情况下正常工作吗?

1 个答案:

答案 0 :(得分:1)

我终于解决了。

问题出在Podfile上,最后一部分是从ios项目目标中删除React(我在以前的React版本中有此功能):

  post_install do |installer|
    installer.pods_project.targets.each do |target|
      if target.name == "React"
        target.remove_from_project
      end
    end
  end

我还必须添加这行(来自React Native Upgrade helper):

require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'

...

use_native_modules!

因此,总而言之,问题在于,升级到0.60之后,Podfile没有正确升级,因此React模块没有添加到iOS目标。