使用Xcode9.2归档React Native项目遇main.jsbundle不存在错误求助
解决React Native项目Xcode归档时main.jsbundle不存在的问题
这个问题我之前归档RN项目时也踩过坑,核心原因就是Xcode执行Archive操作时,没有自动生成main.jsbundle文件,下面是几个亲测有效的解决办法:
方法一:手动生成bundle文件并添加到项目
- 打开终端,切换到你的React Native项目根目录,执行下面的命令生成bundle:
如果你的项目入口文件是react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios/assetsindex.ios.js,记得把命令里的index.js替换成它 - 打开Xcode,把生成的
main.jsbundle和assets文件夹拖到项目目录中,拖入时记得勾选「Copy items if needed」以及对应的target。
方法二:配置Xcode自动生成bundle
- 在Xcode中选中项目target,切换到
Build Phases标签页 - 点击左上角的
+按钮,选择「New Run Script Phase」 - 在新增的Run Script中粘贴以下内容:
export NODE_BINARY=node ../node_modules/react-native/scripts/react-native-xcode.sh - 把这个Run Script拖动到
Dependencies之后、Compile Sources之前的位置 - 先执行
Product > Clean清理项目,再重新尝试Archive操作
方法三:修复DerivedData目录权限问题
有时候DerivedData目录的权限异常也会导致文件生成失败:
- 直接删除报错信息里的DerivedData文件夹:
/Users/louis/Library/Developer/Xcode/DerivedData/Scavenger-evyvzocndqoghkclcbwewolywniz - 重启Xcode,先执行一次普通Build,再尝试Archive
另外也可以检查下package.json里react-native的版本是否和Xcode 9.2兼容,版本不匹配也可能触发这类奇怪的构建问题。
内容的提问来源于stack exchange,提问作者Louis Kurniawan
相关产品推荐
相关产品推荐

