安装react-navigation后iOS构建失败,RNReanimated编译报错如何解决?
解决方案
报错核心为react-native-reanimated库iOS端源文件编译失败,可按以下顺序排查解决:
1. 检查babel配置
必须在项目根目录的babel.config.js中添加reanimated专属插件,且放在插件列表末尾:
module.exports = { presets: ['module:metro-react-native-babel-preset'], plugins: [ // 其余已配置的其他babel插件 'react-native-reanimated/plugin' ] };
2. 匹配版本兼容性
react-native-reanimated对React Native版本要求严格,可根据你项目的RN版本更换匹配的稳定版:
- RN 0.68 ~ 0.71 版本:使用reanimated 2.14.x ~ 2.17.x 稳定版
- RN 0.72及以上版本:使用reanimated 3.3.x及以上版本
安装指定版本命令示例:npm install react-native-reanimated@2.17.0
3. 按正确顺序清理重建依赖
之前的清理操作可能顺序不对导致缓存残留,按以下步骤执行:
- 删除项目下的node_modules、package-lock.json/yarn.lock文件
- 删除ios目录下的Pods文件夹、Podfile.lock文件
- 执行依赖安装:
npm install或yarn install - 进入ios目录执行pod安装:
cd ios && pod install --repo-update && cd .. - 彻底清理Xcode缓存:
rm -rf ~/Library/Developer/Xcode/DerivedData/* - 重启metro服务时强制重置缓存:
npx react-native start --reset-cache - 重新执行iOS构建命令
4. x86_64模拟器架构适配(可选)
如果是在Intel芯片Mac或者开了Rosetta的M系列Mac上运行模拟器报错,可以在ios/Podfile的post_install块中添加以下配置,排除不支持的架构:
post_install do |installer| installer.pods_project.build_configurations.each do |config| config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64" end end
添加后重新执行pod install再构建即可。
内容的提问来源于stack exchange,提问作者Rita Z
相关产品推荐
相关产品推荐

