【问题标题】:React Native iOS build failed : Undefined symbols for architecture x86_64React Native iOS 构建失败:架构 x86_64 的未定义符号
【发布时间】:2018-01-14 22:56:11
【问题描述】:

我正在使用 React Native 构建一个 iOS 应用程序。这样做,我安装了react-native module 并按照模块教程配置了我的 iOS xcode 项目(主要是 cocoapods)。现在,当我运行react-native run-ios 时,我得到了这个错误堆栈:

架构 x86_64 的未定义符号:

“_JSNoBytecodeFileFormatVersion”,引用自:

+[RCTJavaScriptLoader loadBundleAtURL:onProgress:onComplete:] 在 RCTJavaScriptLoader.o

+[RCTJavaScriptLoader attemptSynchronousLoadOfBundleAtURL:runtimeBCVersion:sourceLength:error:] 在 RCTJavaScriptLoader.o “facebook::react::IRemoteConnection::~IRemoteConnection()”,引用自:

RCTInspector.o 中的RemoteConnection::~RemoteConnection() “facebook::react::parseTypeFromHeader(facebook::react::BundleHeader const&)”,引用自:

+[RCTJavaScriptLoader attemptSynchronousLoadOfBundleAtURL:runtimeBCVersion:sourceLength:error:] 在 RCTJavaScriptLoader.o

“facebook::react::customJSCWrapper()”,引用自:

-RCTDevSettings.o中的[RCTDevSettings isJSCSamplingProfilerAvailable]

-[RCTDevSettings toggleJSCSamplingProfiler] 在 RCTDevSettings.o ____ RCTInspector.o中的ZL11getInstancev_block_invoke

RCTJSCErrorHandling.o 中的_RCTNSErrorFromJSErrorRef

-RCTSamplingProfilerPackagerMethod.o中的[RCTSamplingProfilerPackagerMethod handleRequest:withResponder:]

“facebook::react::systemJSCWrapper()”,引用自:

-RCTDevSettings.o中的[RCTDevSettings isJSCSamplingProfilerAvailable]

-RCTDevSettings.o中的[RCTDevSettings toggleJSCSamplingProfiler]

RCTJSCErrorHandling.o 中的_RCTNSErrorFromJSErrorRef

-RCTSamplingProfilerPackagerMethod.o中的[RCTSamplingProfilerPackagerMethod handleRequest:withResponder:]

ld:未找到架构 x86_64 的符号

clang: error: 链接器命令失败,退出代码为 1(使用 -v 查看调用)

** 构建失败 **

以下构建命令失败:

ld /Users/antoine/R/devlab/ReactNative/medway-twilio/MedwayTwilio/ios/build/Build/Products/Debug-iphonesimulator/React/React.framework/React normal x86_64 (1 次失败)

我怀疑这与使用 xcode 将库和框架包含到项目中有关,但我不确定。

这是我的项目目标/构建阶段/链接二进制文件与 xcode 中的库面板的屏幕截图:

“MedwayTwilio”是我的项目名称

【问题讨论】:

  • 你能告诉我更多信息吗,例如你iOS项目中的库部分
  • 你试过运行 react-native link 吗?
  • @JulienKode 如果这是您要求的,我添加了一个屏幕截图。 react-native 链接告诉我我的库已经链接了
  • 您可以将 Pods_MedwayTwillo 添加到嵌入式二进制文件吗?
  • 我刚试过,没有改变任何东西(但感谢你的想法^^)

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


【解决方案1】:

您是否按照in the documentation 的描述配置了 CocoaPods 依赖项?

此外,您需要添加对 RCTBatchedBridge 子规范(如果使用 0.46)或 RCTCxxBridge(如果更新)的依赖项。

  pod 'React', :path => '../node_modules/react-native', :subspecs => [
    'Core',
    'DevSupport', # Include this to enable In-App Devmenu if RN >= 0.43
    [...]
    'BatchedBridge', # Include if RN = 0.46
    'CxxBridge' # Include if RN >= 0.47
  ]

【讨论】:

  • 我在文档中没有看到'CxxBridge' # Include if RN >= 0.47
  • 添加“BatchedBridge”子规范为我解决了这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-27
  • 1970-01-01
  • 2015-12-04
  • 1970-01-01
  • 2018-06-21
  • 2014-11-07
  • 2016-11-07
相关资源
最近更新 更多