Expo EAS iOS构建持续失败,原因不明求技术支持
iOS构建失败排查方案(Expo + React Native)
核心报错分析
日志显示三个关键问题,其中main.jsbundle缺失是导致构建终止的直接原因,另外两个方法冲突是前置警告:
- 重复方法冲突:
+moduleName在ExpoBridgeModule的分类与类中重复定义+UIDatePickerMode:在react-native-date-picker的分类与其他分类存在冲突(即使代码中移除引用,Pod依赖可能残留)
- 直接失败原因:
main.jsbundle文件不存在,导致打包脚本执行失败
分步解决步骤
1. 彻底清理DatePicker依赖残留
- 执行命令清理缓存与依赖:
rm -rf node_modules rm package-lock.json yarn.lock npm install npx pod-install ios - 检查
package.json和Podfile.lock,确认react-native-date-picker已完全移除;若Podfile仍有相关条目,手动删除后重新执行npx pod-install ios
2. 修复ExpoModulesCore重复方法问题
- 升级Expo依赖到兼容版本:
npx expo upgrade - 清理Expo构建缓存后重试:
eas build --clear-cache --platform ios
3. 解决main.jsbundle缺失问题
- 手动预先生成bundle文件(项目根目录执行):
npx react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios/assets - 重新执行构建:
eas build --platform ios - 可选:在
eas.json中配置构建前自动生成bundle,避免重复操作:{ "build": { "production": { "ios": { "prebuildCommand": "npx react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios/assets" } } } }
4. 处理EXConstants脚本警告(可选)
在Xcode中找到EXConstants目标下的[CP-User] Generate app.config for prebuilt Constants.manifest脚本阶段,取消勾选Based on dependency analysis,或添加输出文件路径(如$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH))
内容的提问来源于stack exchange,提问作者ojandali
相关产品推荐
相关产品推荐

