You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

React Native打包异常:执行命令后iOS模拟器未加载最新代码

React Native iOS模拟器加载旧代码的解决方案

我之前也碰到过这个一模一样的糟心问题!明明Metro显示在正常运行,但模拟器就是死咬着旧代码不放,试过常规操作都没用对吧?试试下面这些更针对性的方案:

  • 彻底重启所有相关进程与模拟器
    别只关终端窗口,先通过Activity Monitor杀掉所有metronode相关进程;然后在模拟器里长按APP图标彻底删除,再重启模拟器。之后重新执行:

    npm start -- --reset-cache
    

    等Metro完全加载完所有依赖后,再执行react-native run-ios,全程别中途打断。

  • 深度清理iOS构建缓存
    光删node_modules和pod还不够,得把Xcode的构建缓存也清干净:

    1. 打开Xcode,按下Cmd + Shift + K清理构建文件夹,再按Cmd + Option + Shift + K清理衍生数据
    2. 在项目根目录执行:
      rm -rf ios/build
      cd ios && pod deintegrate && pod install && cd ..
      

    完成后再重新启动项目。

  • 手动删除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

火山引擎 最新活动