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

Expo SDK46升级后EAS Build忽略本地versionCode等配置问题

Expo SDK46 + EAS Build 版本号及配置不生效问题解决指南

一、VersionCode 不生效问题排查

  • 确认app.config.js版本配置格式
    确保在expo.android字段下明确指定versionCode,同时version对应语义化版本,示例代码:

    export default {
      expo: {
        version: "1.1.1",
        android: {
          versionCode: 26,
          // 其他Android配置
        }
      }
    };
    

    若使用环境变量管理版本,需同步在EAS控制台的项目环境变量中配置,避免本地.env变量未被构建环境读取。

  • 检查eas.json的配置优先级
    eas.json中各构建profile如果硬编码了version或versionCode,会直接覆盖app.config.js的设置。比如以下配置会导致本地versionCode 26被覆盖为25:

    {
      "build": {
        "production": {
          "android": {
            "versionCode": 25
          }
        }
      }
    }
    

    排查所有构建profile,移除硬编码的版本字段。

  • 正确配置本地版本源
    在eas.json对应构建profile中设置"appVersionSource": "local",同时不要在该profile下设置version或versionCode,示例:

    {
      "build": {
        "production": {
          "appVersionSource": "local",
          "android": {
            // 不设置versionCode
          }
        }
      }
    }
    

    构建时添加--clear-cache参数清除缓存:eas build -p android --profile production --clear-cache

二、图标、启动图、背景色等配置不生效问题

  • 校验配置路径与格式
    确保图标、启动图的路径是相对于项目根目录的正确路径,且格式符合Expo要求(比如图标尺寸达标),示例:

    export default {
      expo: {
        icon: "./assets/icon.png",
        splash: {
          image: "./assets/splash.png",
          backgroundColor: "#ffffff"
        }
      }
    };
    

    同时确认对应文件存在于指定路径。

  • 排查eas.json的配置覆盖
    检查eas.json中是否存在覆盖app.config.js的splash、icon等配置,若有则移除该部分配置,让本地app.config.js生效。

  • 清除缓存
    本地执行expo r -c清除Expo本地缓存;构建时添加--clear-cache参数,确保EAS使用最新的配置文件。

三、额外排查动作

  • 执行expo config命令,查看解析后的完整配置,确认versionCode、图标等字段是否正确输出
  • 查看EAS控制台的构建日志,搜索"versionCode"、"icon"等关键词,排查是否有配置被忽略或覆盖的提示信息
  • 确认Expo CLI版本匹配SDK46,建议使用6.0.0及以上版本,执行expo --version查看当前版本

内容的提问来源于stack exchange,提问作者sphrases

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 19:50:23