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

使用EAS CLI构建iOS Expo应用时遇main.jsbundle不存在错误求助

解决方案:EAS构建iOS时main.jsbundle不存在及重复方法警告问题

一、优先解决致命错误:main.jsbundle不存在

这是导致构建失败的核心原因,按以下步骤排查:

  • 检查入口文件配置

    1. 打开package.json,确认main字段指向正确的入口文件,例如:
      "main": "App.js"
      
    2. 打开app.json(或app.config.js),若设置了expo.entryPoint,确保路径与实际文件位置一致,比如根目录的App.js需写为"./App.js"。
  • 本地预生成bundle,排查代码问题
    在终端执行命令尝试本地生成iOS bundle,直接暴露代码层面的错误:

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

    若命令失败,终端会输出具体错误(如语法错误、导入路径错误),修复后再重新构建。

  • 清理构建缓存
    清理EAS远程构建缓存和本地依赖缓存:

    # 清理EAS构建缓存
    eas build --clear-cache
    
    # 清理本地依赖并重新安装
    rm -rf node_modules package-lock.json yarn.lock
    npm install
    

二、解决重复方法警告(提升构建稳定性)

这些警告是依赖冗余或版本不兼容的信号,需清理优化:

  • 卸载冗余/无效依赖
    从你的依赖列表看,存在多个多余或无效包,执行以下命令卸载:

    # 卸载多余的babel插件
    npm uninstall @babel/plugin-transform-object-assign
    
    # 卸载重复的datetimepicker版本
    npm uninstall @react-native-community/datetimepicker@2
    
    # 卸载无效的async-storage包(正确包为@react-native-async-storage/async-storage)
    npm uninstall react-native-async-storage
    

    卸载后重新安装依赖,确保依赖树干净。

  • 同步Expo与React Native版本
    Expo 48.0.5搭配React Native 0.71.3兼容,但建议升级到Expo 48的最新补丁版本修复已知问题:

    npm install expo@^48.0.20
    
  • 检查babel配置
    若使用babel-plugin-module-resolver,打开babel.config.js确认路径映射无错误,比如之前将App.js移入src的配置残留需同步修改。

三、额外排查步骤

若上述方法无效,尝试本地生成iOS项目并手动构建:

eas build:configure --platform ios

用Xcode打开ios/LogAirTheSimpleLogbook.xcworkspace,点击构建按钮,查看Xcode输出的详细错误日志,定位bundle脚本执行失败的具体原因。

内容的提问来源于stack exchange,提问作者Sebastián Rubina

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:35:41