EAS Build生成的AAB文件未更新代码与图标问题求助
解决EAS Build生成AAB仍包含旧代码/图标的问题
核心认知澄清
eas update用于推送Over-the-Air (OTA) 更新,不会修改eas build生成的原生安装包(AAB/APK)。安装包本身存储的是构建时刻的代码与资源,OTA更新是APP安装后动态加载的内容。如果用户安装APP后无法获取更新,或你需要生成包含最新代码的AAB,按以下步骤排查:
排查与解决步骤
1. 区分变更类型,判断是否需要重新构建
- 若变更涉及原生代码/资源(如图标、
AndroidManifest.xml、原生依赖配置等),OTA更新无法覆盖,必须重新执行eas build生成新AAB。 - 若仅为JS/TS代码或非原生资源变更,可通过OTA更新生效,但需确保APP端能正常拉取更新。
2. 检查EAS Build构建配置与执行命令
- 构建时明确指定正确的渠道、分支与配置文件,避免缓存干扰:
eas build --platform android --profile production --channel production --clear-cache - 验证
eas.json中production配置的正确性,确保分支、渠道与构建类型匹配:{ "build": { "production": { "channel": "production", "branch": "production", "android": { "buildType": "app-bundle" } } } }
3. 确认OTA更新的生效逻辑
- 检查APP的更新配置(
app.json/app.config.js中的updates字段),确保开启自动更新或设置了合理的更新检查频率。 - 手动触发更新测试,在APP中添加代码验证:
import * as Updates from 'expo-updates'; const checkForUpdate = async () => { const update = await Updates.checkForUpdateAsync(); if (update.isAvailable) { await Updates.fetchUpdateAsync(); await Updates.reloadAsync(); } };
4. 验证渠道与分支的绑定关系
- 查看当前production渠道绑定的分支:
eas channel:view production - 若绑定错误,重新关联分支:
eas channel:edit production --branch production
5. 同步本地与远程分支代码
确保本地production分支的最新代码已推送到远程仓库,EAS Build基于远程分支代码构建,本地未推送的变更不会被纳入安装包。
内容的提问来源于stack exchange,提问作者Leenah
相关产品推荐
相关产品推荐

