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

iOS应用因JS Bundle与Expo入口点问题卡在启动页

iOS应用因JS Bundle与Expo入口点问题卡在启动页

嘿,我太懂这种踩坑的感觉了!用Expo Router的bare workflow搞iOS release的时候,经常会因为JS Bundle没正确生成或者配置不对,导致TestFlight上的App卡在启动页。咱们一步步来排查解决:

1. 先把你的bundle命令补全并修正

你提到的命令里entry-file写的是“i”,应该是输入到一半没写完吧?针对用Expo Router的bare项目,正确的打包命令应该是这样的:

npx react-native bundle \
  --entry-file index.js \
  --platform ios \
  --dev false \
  --bundle-output ios/main.jsbundle \
  --assets-dest ios

这里要确认你的index.js里有没有导入Expo Router的入口代码——正常来说eject后的项目,index.js里应该有这么一行:import 'expo-router/entry';,这是Expo Router能正常启动的关键,要是没这行,bundle生成了也没用。

2. 检查Xcode里的Build Phases配置

  • 先确认main.jsbundle和生成的assets文件夹已经正确添加到Xcode项目里:右键你的项目 -> Add Files to [项目名],选择ios目录下的main.jsbundle和assets文件夹,勾选「Copy items if needed」,还要确保Target membership选对了你的主App target。
  • 然后看「Bundle React Native code and images」这个脚本,Expo ejected的项目有时候这个脚本会有问题,你可以把它改成标准的bare项目脚本:
export NODE_BINARY=node
../node_modules/react-native/scripts/react-native-xcode.sh

如果不想手动生成bundle,也可以让这个脚本自动帮你生成,但要确保脚本执行时能找到正确的入口文件。

3. 核对Expo配置文件的入口设置

打开你的app.json或者app.config.js,检查expo.entryPoint字段是不是和你实际的入口文件对应,比如你用的是index.js,那这里应该设为"./index.js",别写错路径。

4. 清理缓存,重新构建

缓存问题经常是罪魁祸首,按顺序来:

  • Xcode里选Product -> Clean Build Folder,再去Preferences -> Locations里找到Derived Data的路径,删掉整个文件夹;
  • 终端里执行npx react-native start --reset-cache清理React Native缓存;
  • 重新用正确的命令生成bundle,然后再去Xcode里Archive项目。

5. 本地先测Release模式

别着急上传TestFlight,先在本地跑Release模式调试:

  • Xcode里选Product -> Scheme -> Edit Scheme,把Run的Build Configuration改成Release,然后运行到模拟器或者真机上;
  • 打开Xcode的控制台,看看有没有报错——比如找不到bundle文件、入口错误、路由配置问题,这些在Release模式下不会像开发模式那样弹出提示,只会卡在启动页。

备注:内容来源于stack exchange,提问作者Sana Fatima

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 17:08:17