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

如何在Expo托管项目的build.gradle中添加默认配置

在Expo托管项目中给Android build.gradle的defaultConfig添加missingDimensionStrategy配置

要实现这个需求,你可以编写一个简单的Expo Config Plugin,利用withAppBuildGradle精准修改build.gradle文件,具体步骤如下:

1. 创建自定义插件文件

在项目根目录下新建plugins/withStoreDimensionStrategy.js文件,写入以下代码:

const { withAppBuildGradle } = require('@expo/config-plugins');

module.exports = function withStoreDimensionStrategy(config) {
  return withAppBuildGradle(config, (config) => {
    // 只处理Groovy格式的build.gradle文件(Expo默认生成的是Groovy格式)
    if (config.modResults.language === 'groovy') {
      // 正则匹配defaultConfig块,确保精准插入配置
      config.modResults.contents = config.modResults.contents.replace(
        /defaultConfig\s*{([^}]+)}/s,
        (match, innerContent) => {
          // 避免重复添加相同配置
          if (!innerContent.includes('missingDimensionStrategy \'store\', \'play\'')) {
            return `defaultConfig {
${innerContent.trim()}
    missingDimensionStrategy 'store', 'play'
}`;
          }
          return match;
        }
      );
    }
    return config;
  });
};

2. 在项目配置中注册插件

打开app.json或app.config.js,将插件添加到expo.plugins数组中:

{
  "expo": {
    // 其他配置...
    "plugins": [
      "./plugins/withStoreDimensionStrategy.js"
    ]
  }
}

3. 验证配置生效

运行expo prebuild --platform android(本地预构建查看效果)或直接触发eas build,生成的android/app/build.gradle文件中,defaultConfig块内会出现你需要的配置:

defaultConfig {
    // 原有配置...
    missingDimensionStrategy 'store', 'play'
}

补充说明

如果你的项目需要更复杂的Gradle AST操作(比如处理嵌套块、动态配置),可以使用Expo提供的Gradle AST解析工具,不过对于这种单一配置的添加,正则替换已经足够高效可靠。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 18:25:48