M1芯片Mac安装react-native-reanimated后iOS模拟器构建失败如何解决
M1芯片Mac安装react-native-reanimated iOS编译失败解决方案
以下是按优先级排序的可执行修复步骤:
1. 匹配版本兼容性
react-native-reanimated对RN版本、Xcode版本的兼容性要求很高,你的系统为macOS 11.6,最高适配Xcode 13版本,需按你当前使用的React Native版本选择对应reanimated版本:
- RN 0.65及更低版本:使用
react-native-reanimated@~2.14.4 - RN 0.66 ~ 0.69版本:使用
react-native-reanimated@~2.17.0 - 禁止使用reanimated 3.x版本,该版本最低要求RN 0.70+、Xcode 14+,与你的系统环境不兼容
2. 清理并重新安装依赖
按顺序执行以下操作:
- 删除现有依赖锁文件和node_modules:
rm -rf node_modules package-lock.json
- 调整package.json中的reanimated版本为上述匹配版本后重新安装依赖:
npm install
安装提示的漏洞均为子依赖层级的安全提示,不影响核心编译功能,可后续单独修复,无需在此步处理。
- 进入ios目录清理Pod缓存:
cd ios rm -rf Pods Podfile.lock ~/Library/Developer/Xcode/DerivedData/*
- M1芯片需使用Rosetta转译执行pod install避免架构冲突:
arch -x86_64 pod install
3. 调整Xcode架构配置
打开ios目录下的.xcworkspace项目文件,按以下要求修改配置:
- 选中左侧项目栏的
Pods项目,找到RNReanimatedtarget,进入Build Settings页,搜索Excluded Architectures - 在Debug、Release模式的
Any iOS Simulator SDK选项下添加arm64 - 同步修改你的主项目target的
Excluded Architectures配置,同样给模拟器选项添加arm64,保证所有模块配置统一
4. 补全Babel插件配置
打开项目根目录的babel.config.js,在plugins数组的最后一位添加reanimated的插件配置:
module.exports = { presets: ['module:metro-react-native-babel-preset'], plugins: [ // 其他已有插件 'react-native-reanimated/plugin' // 必须放在所有插件最后 ] };
5. 重新编译运行
回到项目根目录执行npx react-native run-ios即可,若仍报错可直接在Xcode中点击运行查看更具体的错误信息。
内容的提问来源于stack exchange,提问作者LeetCode Yeet
相关产品推荐
相关产品推荐

