You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native应用Xcode运行卡启动页,CLI运行正常问题求助

可能的原因及排查方向

我之前也碰到过类似的情况,结合社区的常见问题和自己的排查经验,整理了几个可能的原因,你可以逐一排查:

  • Xcode未自动启动Metro或环境变量配置缺失
    命令行执行react-native run-ios时,会自动启动Metro服务器并给Xcode注入必要的环境变量(比如NODE_BINARY、RCT_METRO_PORT)。但直接在Xcode里运行时,这些操作不会自动完成:

    1. 先手动在终端启动Metro:npx react-native start
    2. 检查Xcode的Scheme配置:打开Xcode → 顶部菜单栏Product → Scheme → Edit Scheme → 切换到Run标签 → Arguments栏,确认Environment Variables里有NODE_BINARY(指向你的本地node路径,比如/usr/local/bin/node)和RCT_METRO_PORT=8081,如果没有就手动添加。
  • 缓存堆积导致的加载异常
    各种缓存堆积很容易引发这类启动卡住的问题,建议依次清理:

    • 清除Metro缓存:npx react-native start --reset-cache
    • 清除Xcode的Derived Data:打开Xcode → Preferences → Locations → 点击Derived Data后的箭头打开文件夹,删除所有内容后重启Xcode
    • 清理iOS端Pods缓存:终端进入项目的ios目录,执行pod deintegrate && pod install,回到根目录后再尝试构建
  • Xcode的构建目标或模式配置错误

    • 确认Xcode顶部的设备选择和你命令行指定的一致(比如都是iPhone 8模拟器),真机运行的话要确保设备已信任开发者证书,Signing & Capabilities配置正确
    • 检查Scheme是否为Debug模式:Release模式下不会加载Metro依赖图,自然会卡在启动页,切换回Debug模式再试
  • Metro默认端口被占用
    命令行启动时会自动处理端口冲突,但Xcode运行时如果默认的8081端口被其他程序占用,就会卡住加载依赖图:

    1. 检查端口占用情况:lsof -i :8081
    2. 杀掉占用端口的进程:kill -9 <查到的PID>
    3. 重新启动Metro后再在Xcode运行
  • React Native与Xcode版本不兼容
    部分RN版本对Xcode版本有明确要求,比如RN 0.70+需要Xcode 14.1及以上版本。可以对照你使用的RN版本官方文档,确认Xcode版本是否匹配,不兼容的话要么升级Xcode,要么降级RN到适配的版本

内容的提问来源于stack exchange,提问作者user8685433

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:23:04