EAS CLI无法为Expo应用执行更新,寻求技术排查方案
问题排查与修复方案
核心变更说明
expo publish已被EAS Update完全替代,官方已废弃该命令,这是导致你无法继续使用它的直接原因,现在必须使用eas update推送应用更新。
配置文件修复步骤
1. 清理eas.json中的冲突配置
你的eas.json同时存在releaseChannel和channel字段,前者是旧版Expo Updates的概念,后者是EAS Update的新特性,两者共存会引发逻辑冲突。需要移除所有releaseChannel字段,仅保留channel:
修改后的eas.json:
{ "cli": { "version": ">= 2.7.0", "promptToConfigurePushNotifications": false }, "build": { "development": { "developmentClient": true, "distribution": "store", "channel": "default" }, "preview": { "ios": { "autoIncrement": "buildNumber" }, "android": { "buildType": "app-bundle" }, "channel": "default", "distribution": "store" }, "production": { "autoIncrement": true, "channel": "default" } }, "submit": { "production": { "android": { "track": "production" }, "ios": { "companyName": "턴백", "appName": "턴백", "language": "kr" } } } }
2. 补全app.json中的updates.url
你的updates.url字段为占位符...,必须替换为Expo控制台中对应项目的EAS更新服务器地址:
- 登录Expo控制台进入你的项目
- 切换到「Updates」标签页
- 复制页面中的「Update URL」,替换app.json里的
"url": "..."
3. 确认runtimeVersion一致性
你使用的runtimeVersion策略为sdkVersion,只要构建应用包和推送更新时使用的Expo SDK版本一致(当前均为45.0.8),就不会出现版本不兼容问题,无需额外修改。
正确的更新命令
执行以下命令将更新推送到default渠道:
eas update --channel default
额外检查项
- 确保已通过
eas login登录正确的Expo账号 - 确认本地项目的
app.json中extra.eas.projectId与Expo控制台的项目ID一致 - 若在CI/CD环境执行更新,需配置正确的
EAS_TOKEN环境变量
内容的提问来源于stack exchange,提问作者Youngsung Choi
相关产品推荐
相关产品推荐

