如何在托管式Expo项目中添加Android build.gradle的missingDimensionStrategy配置
托管式Expo项目添加build.gradle defaultConfig配置的方案
1. 编写本地Expo插件(Mod)
在项目根目录新建plugins文件夹,里面创建withMissingDimensionStrategy.js文件,代码如下:
const { withAppBuildGradle } = require('@expo/config-plugins'); module.exports = function withMissingDimensionStrategy(config) { return withAppBuildGradle(config, async (config) => { if (config.modResults.language === 'groovy') { // 匹配defaultConfig代码块 const defaultConfigRegex = /defaultConfig\s*{([\s\S]*?)}/; config.modResults.contents = config.modResults.contents.replace( defaultConfigRegex, (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": { "name": "你的项目名称", "slug": "你的项目标识", // 其他原有配置... "plugins": [ "./plugins/withMissingDimensionStrategy.js" ] } }
3. 验证配置是否生效
执行以下命令生成Android原生文件(仅用于验证,托管式项目不用提交这些原生文件):
npx expo prebuild --platform android
之后打开android/app/build.gradle,查看defaultConfig块里是否已经有missingDimensionStrategy 'store', 'play'这一行即可。
托管式项目通过EAS Build构建时,插件会自动执行修改,不用手动维护原生文件。
内容的提问来源于stack exchange,提问作者guitarman0456
相关产品推荐
相关产品推荐

