Xcode14.2打包报错:main.jsbundle缺失,疑似React Native Bug
解决React Native Archive打包时main.jsbundle缺失问题
核心问题分析
结合你的场景:RN 0.70.6 + React 18 + Firebase依赖的项目打包失败,旧版本RN 0.68.2正常,且此前Xcode 14.2打包无异常,问题大概率出在Release模式下JS bundle生成步骤异常,或是Xcode构建阶段的脚本执行顺序、权限,以及Firebase依赖的构建冲突上。
具体修复步骤
手动预生成main.jsbundle
Archive前先执行命令强制生成bundle文件,避免Xcode构建时脚本执行失败:npx react-native bundle --platform ios --dev false --entry-file index.js --bundle-output ios/main.jsbundle --assets-dest ios/assets执行完成后,打开Xcode右键项目 →
Add Files to "项目名",选择生成的main.jsbundle和assets文件夹,勾选Copy items if needed及对应target,确保文件被纳入项目。检查Xcode构建阶段脚本
进入项目target的Build Phases面板:- 确认
Bundle React Native code and images脚本存在,且顺序在Compile Sources之后、Copy Bundle Resources之前。 - 脚本内容需包含:
若你用了nvm或自定义node路径,需替换export NODE_BINARY=node ../node_modules/react-native/scripts/react-native-xcode.shNODE_BINARY为实际路径(可用which node查看,例如export NODE_BINARY=/usr/local/bin/node)。 - 脚本的
Shell选择/bin/bash,并确认Run script only when installing未勾选(确保Release构建时脚本会执行)。
- 确认
清理全量缓存
- Xcode内执行
Product -> Clean Build Folder(快捷键Cmd+Shift+K)。 - 删除DerivedData缓存:
rm -rf ~/Library/Developer/Xcode/DerivedData - 重置依赖:
rm -rf node_modules && npm install npx pod-install ios
- Xcode内执行
排查Firebase依赖冲突
- 重新安装Firebase依赖,确保版本与RN 0.70.6兼容:
npm uninstall @react-native-firebase/app npm install @react-native-firebase/app@^16.1.0 npx pod-install ios - Xcode的
Build Settings中,搜索Dead Code Stripping,设置Release模式为NO。 - 检查
Other Linker Flags,确保包含-ObjC和-lc++。
- 重新安装Firebase依赖,确保版本与RN 0.70.6兼容:
调整Archive构建配置
- 打开
Product -> Scheme -> Edit Scheme,选择Archive选项卡,确认Build Configuration为Release,且Debug executable未勾选。 - 切换到
Build选项卡,确保所有target的Build Configuration均为Release。
- 打开
验证步骤
完成上述操作后,先执行Product -> Build构建Release版本,确认无错误后再尝试Archive。若仍失败,可创建一个干净的RN 0.70.6项目仅集成Firebase依赖,测试是否能正常打包,排查项目配置污染问题。
内容的提问来源于stack exchange,提问作者saniya tariq
相关产品推荐
相关产品推荐

