React Native打包异常:执行命令后iOS模拟器未加载最新代码
React Native iOS模拟器加载旧代码的解决方案
我之前也碰到过这个一模一样的糟心问题!明明Metro显示在正常运行,但模拟器就是死咬着旧代码不放,试过常规操作都没用对吧?试试下面这些更针对性的方案:
彻底重启所有相关进程与模拟器
别只关终端窗口,先通过Activity Monitor杀掉所有metro、node相关进程;然后在模拟器里长按APP图标彻底删除,再重启模拟器。之后重新执行:npm start -- --reset-cache等Metro完全加载完所有依赖后,再执行
react-native run-ios,全程别中途打断。深度清理iOS构建缓存
光删node_modules和pod还不够,得把Xcode的构建缓存也清干净:- 打开Xcode,按下
Cmd + Shift + K清理构建文件夹,再按Cmd + Option + Shift + K清理衍生数据 - 在项目根目录执行:
rm -rf ios/build cd ios && pod deintegrate && pod install && cd ..
完成后再重新启动项目。
- 打开Xcode,按下
手动删除Metro缓存文件
有时候--reset-cache命令可能没清干净,手动删缓存目录更彻底:rm -rf ~/.metro-cache rm -rf .cache删完再重新启动Metro。
检查Hermes引擎缓存(如果开启了的话)
要是你的项目用了Hermes,额外清理它的缓存:rm -rf ios/build/hermes-engine之后重新构建运行。
确认运行的是正确的Scheme
有时候可能不小心指定了旧的Scheme,试试明确指定APP名称运行:react-native run-ios --scheme YourAppName把
YourAppName换成你项目里实际的Scheme名称(一般和项目名一致)。终极方案:重启电脑
别笑,有时候系统级的缓存或者进程残留就是这么顽固,重启后从头再来一遍流程,大概率能解决。
内容的提问来源于stack exchange,提问作者errorau




