【问题标题】:react-native run-ios fails to buildreact-native run-ios 构建失败
【发布时间】:2021-04-08 08:34:18
【问题描述】:

我有一个现有项目,已在 windows + android 设置上进行了测试。现在我正在尝试在 Macbook 上运行它以在 Iphone 11 模拟器上进行测试。

  • react-native-cli: 2.0.1
  • 反应原生:0.64.0

我安装 pod 文件并尝试运行

react-native run-ios

我收到以下错误:

** 构建失败 **

以下构建命令失败: CompileC [USER]/Library/Developer/Xcode/DerivedData/andon-hkuetryxdipcrgbcxnseaqnfnaqp/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/ReactCommon.build/Objects-normal/x86_64/RCTTurboModuleManager.o [PROJECT_PATH]/node_modules/ react-native/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.mm normal x86_64 Objective-c++ com.apple.compilers.llvm.clang.1_0.compiler (1 次失败)

【问题讨论】:

  • 你安装 Xcode 吗?如果您安装了 Xcode,请在再次克隆项目后尝试执行它。

标签: xcode macos react-native


【解决方案1】:

  • 在 XCode 顶部菜单下,转到 XCode->Preferences -> Locations -> Open 派生数据文件夹(通过单击箭头按钮)(查找屏幕截图 供您参考)

  • Finder 将打开 Derived Data 文件夹,

  • 删除派生数据文件夹

  • 使用 npm start 或 yarn start 启动 Metro 服务器

  • 使用 cmd+shift+k 执行干净构建

  • 使用 cmd+r 运行应用程序

【讨论】:

  • 如果我在 VSC 中创建了项目,但修复后构建仍然失败怎么办?我尝试使用 react-native run-ios 在 VSC 中运行代码
【解决方案2】:

可能很晚才回答。

我从0.63.4 升级到0.64.2 后开始遇到这个问题。

如果我们从命令行运行,则没有任何方法可以找出错误。当我从 x-code 运行时,发现以下错误消息,

/node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.mm:172:8: 'shared_timed_mutex' 不可用:在 iOS 10.0 中引入

原因是我的 podfile 中有以下条目,

config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'

在我删除上述条目后,它开始像魅力一样工作。

参考:https://github.com/facebook/react-native/issues/31250#issuecomment-808312355

【讨论】: