Expo iOS生产环境构建崩溃但expo run:ios可正常运行的问题排查求助
Expo iOS生产环境构建崩溃但expo run:ios可正常运行的问题排查求助
最近我碰到个特别头疼的问题:用命令eas build --profile production --platform ios构建iOS生产包的时候直接崩溃了,但用expo run:ios却能正常启动项目,完全没毛病。我把自己的eas.json配置贴出来,有没有大佬能帮忙分析下可能的原因?
我的eas.json配置如下:
{ "cli": { "version": ">= 0.60.0", "appVersionSource": "remote" }, "build": { "local": { "developmentClient": false, "env": { "APP_ENV": "dev" }, "ios": { "simulator": true } }, "development": { "developmentClient": true, "distribution": "internal", "env": { "APP_ENV": "dev" } }, "preview": { "developmentClient": false, "distribution": "internal", "env": { "APP_ENV": "prod" }, "ios": { "image": "macos-sequoia-15.3-xcode-16.2" } }, "production": { "developmentClient": false, "env": { "APP_ENV": "prod" }, "autoIncrement": true, "ios": { "image": "macos-sequoia-15.3-xcode-16.2", "simulator": true } } } }
我自己先琢磨了几个可能的方向,但还没找到根源,也想听听大家的看法:
- 模拟器环境差异:生产构建用了指定的Xcode镜像
macos-sequoia-15.3-xcode-16.2,而本地expo run:ios用的是我本地的Xcode版本,会不会版本不匹配导致某些编译逻辑出错?另外production里设置了simulator: true,本地run的模拟器和EAS构建的模拟器环境会不会有区别? - 生产模式的特殊配置:production开启了
autoIncrement自动版本递增,会不会这个过程中触发了什么权限或者配置错误?而且生产模式下关闭了developmentClient,会不会项目里有些依赖或者代码逻辑只适配了开发客户端模式? - 环境变量与打包逻辑:虽然production和preview都用了
APP_ENV: prod,但preview是内部分发,production是正式生产,会不会打包时的代码压缩、混淆或者资源处理逻辑不一样,导致某些代码崩溃? - 构建缓存问题:会不会EAS的构建缓存里存了旧的错误配置?我打算试试加
--clear-cache参数重新构建,但还没来得及测试。 - 证书与权限配置:生产构建需要的发布证书、推送权限这些,是不是和本地开发用的证书配置不一致?会不会权限缺失导致构建崩溃?
有没有大佬遇到过类似的问题,或者能给点排查的建议?
内容来源于stack exchange
相关产品推荐
相关产品推荐

