Expo iOS预构建生产构建遇bundle缺失问题,求非EAS解决方案
Expo iOS生产包无JS Bundle问题的解决方法(无需EAS)
检查项目配置文件
打开app.json或app.config.js,确认:ios.bundleIdentifier已正确配置expo.ios下没有禁用bundle嵌入的特殊配置expo.packagerOpts.dev设置为false(生产环境必须关闭开发模式)
手动生成JS Bundle及资源
执行以下命令直接生成iOS所需的bundle文件,若项目入口为app.js则替换index.js:npx react-native bundle --platform ios --entry-file index.js --bundle-output ios/main.jsbundle --assets-dest ios配置Xcode确保bundle被嵌入
- 打开ios目录下的
.xcworkspace文件 - 如果
main.jsbundle未出现在项目导航中,手动将其拖入项目,勾选"Copy items if needed"并关联到目标target - 进入
Build Phases > Copy Bundle Resources,确认main.jsbundle和生成的assets文件夹已在列表内 - 检查
Info.plist,确保没有错误的URL配置导致无法定位bundle
- 打开ios目录下的
清理缓存后重新构建
- 清理Expo缓存:
npx expo start --clear - 清理Xcode构建缓存:按下
Cmd+Shift+K(或通过Xcode菜单Product > Clean Build Folder操作) - 重置依赖与prebuild文件:
rm -rf node_modules && npm install npx expo prebuild --platform ios --clean
- 清理Expo缓存:
修正export命令用法
执行export时指定输出目录并检查终端日志:npx expo export -p ios --output-dir ./dist查看终端输出是否有生成bundle的相关日志,若存在错误根据提示修复。
内容的提问来源于stack exchange,提问作者Saumitra
相关产品推荐
相关产品推荐

