在 Mac M1 上 React Native ios 构建失败

Posted

技术标签:

【中文标题】在 Mac M1 上 React Native ios 构建失败【英文标题】:React Native ios builed Failed on Mac M1 【发布时间】:2021-12-11 23:48:13 【问题描述】:

我创建了 React 项目版本 0.66.1。它在 android 上运行良好,但在 ios 上运行良好。

** 构建失败 ** 以下构建命令失败: CompileC /Users/nunggu/Library/Developer/Xcode/DerivedData/The_Shop_App-cbmtjvbjevexvvefqivkzkbmmaxa/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/RCT-Folly.build/Objects-normal/arm64/SysUio.o /Users/ nunggu/Documents/React\ Udemy/The_Shop_App/ios/Pods/RCT-Folly/folly/portability/SysUio.cpp normal arm64 c++ com.apple.compilers.llvm.clang.1_0.compiler(在目标“RCT-Folly”中项目“豆荚”) (1 次失败)

################################## “名称”:“the_shop_app”, “版本”:“0.0.1”, “私人”:真的, “脚本”: "android": "react-native run-android", "ios": "react-native run-ios", "start": "react-native start", “测试”:“开玩笑”, “lint”:“eslint”。 , “依赖”: “反应”:“17.0.2”, “反应原生”:“0.66.1” , “开发依赖”: "@babel/core": "^7.12.9", "@babel/runtime": "^7.12.5", "@react-native-community/eslint-config": "^2.0.0", "babel-jest": "^26.6.3", “eslint”:“7.14.0”, "笑话": "^26.6.3", “metro-react-native-babel-preset”:“^0.66.2”, “反应测试渲染器”:“17.0.2” , “开玩笑”: “预设”:“反应原生”

【问题讨论】:

请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。 使用react-native-community.github.io/upgrade-helper只有少数新版本支持M1,但也可能是不同的问题 仍有错误。 查看react native project not build on MacBook M1 【参考方案1】:

经过多次尝试,我已经找到了解决方案。 只需将代码添加到ios文件夹中的Podfile中即可:

 use_flipper!( 'Flipper-Folly' => '2.6.0', 'Flipper' => '0.112.0', 'Flipper-RSocket' => '1.4.0' )

 post_install do |installer|
react_native_post_install(installer)
__apply_Xcode_12_5_M1_post_install_workaround(installer)

 flipper_post_install(installer)

 find_and_replace("Pods/Headers/Private/RCT-Folly/folly/synchronization/DistributedMutex-inl.h",
 "atomic_notify_one(state)", "folly::atomic_notify_one(state)")

 find_and_replace("Pods/Flipper-Folly/folly/synchronization/DistributedMutex-inl.h",
 "atomic_wait_until(&state, previous | data, deadline)", "folly::atomic_wait_until(&state, previous | data, deadline)")

 end
end

Flipper 兼容版本作为链接: https://cocoapods.org/pods/Flipper.

【讨论】:

以上是关于在 Mac M1 上 React Native ios 构建失败的主要内容,如果未能解决你的问题,请参考以下文章

在 M1 上缺少 Safari 中的 React Native iOS 调试

iOS 模拟器无法正确滚动(M1 + React Native 项目)

React Native Project 没有在使用 Apple M1 芯片的 iOS 模拟器上运行

如何在 mac 上卸载 react-native-cli?

在 Macbook M1 上的 Xcode 12.4 中构建后,在 iOS 上的 React Native 中找不到 YogaKit.modulemap

Cocoapods 在设置 react-native 开发时无法下载依赖项(APPLE M1)