Reactjs 未定义的架构符号,反应本地cocoapod问题

Reactjs 未定义的架构符号,反应本地cocoapod问题,reactjs,react-native,cocoapods,Reactjs,React Native,Cocoapods,我有一个现有的react-native应用程序,我希望将react-native链接用于包含PODSpec的新依赖项。然而,这带来了一个问题,因为它们都依赖于React 我在我的播客文件中添加了以下内容: pod 'React', :path => '../node_modules/react-native' # Explicitly include Yoga pod 'yoga', :path => '../node_modules/react-native/ReactCommo

我有一个现有的react-native应用程序,我希望将react-native链接用于包含PODSpec的新依赖项。然而,这带来了一个问题,因为它们都依赖于React

我在我的播客文件中添加了以下内容:

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

# Explicitly include Yoga
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
这解决了其他模块的PODSpec的依赖性问题,但引入了以下新错误:

Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_RCTCxxBridge", referenced from:
     objc-class-ref in libReact.a(RCTBridge.o)
ld: symbol(s) not found for architecture arm64
这个错误似乎是因为我没有为React列出任何子服务器(特别是“cxbridge”)。当我将CxxBridge添加到Podfile时,我被迫添加以下依赖项,因为“CxxBridge”依赖于愚蠢:

# Third party deps podspec link
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'
添加这些依赖项没有问题,但它们的源代码已经存在于
node\u modules/react native/third-party
中。理想情况下,我希望在Podfile中指定路径,这样我就不必提交大量的样板代码,但由于源文件没有PodSpec,所以我无法这样做

是否有任何方法可以将CxxBridge链接到项目中,而不必添加已存在于
node_模块中的额外代码
?其他人是如何在第三方依赖项(带有react native链接)中使用PodSpecs的?如有任何帮助和/或Podfile示例,将不胜感激

react-native: 0.57.1
xcode: 9.4.1

发布答案,以防其他人遇到类似情况。结果证明链接的库是错误的,因为有些库可能是从节点_模块引用React项目中的库,而有些库可能是从React Pod中引用库

修复的步骤:

  • 删除要React的链接以及React项目中包含的任何子服务器
  • 删除所有以前生成的Pod文件
  • 将安装后脚本添加到Podfile
  • 运行
    pod安装
  • 链接所有必要的React依赖项
安装后脚本:

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

你是个救生员。