diff --git a/app.json b/app.json index 34f34037..0ba59627 100644 --- a/app.json +++ b/app.json @@ -55,7 +55,8 @@ } ], "./plugins/withKioskAdmin", - "./plugins/withUsbCamera" + "./plugins/withUsbCamera", + "./plugins/withSettingsRepositories" ], "extra": { "eas": { diff --git a/plugins/withSettingsRepositories.js b/plugins/withSettingsRepositories.js new file mode 100644 index 00000000..6cc97967 --- /dev/null +++ b/plugins/withSettingsRepositories.js @@ -0,0 +1,29 @@ +const { withSettingsGradle } = require('@expo/config-plugins'); + +const withSettingsRepositories = (config) => { + return withSettingsGradle(config, (config) => { + let contents = config.modResults.contents; + + // Append dependencyResolutionManagement block at the end of settings.gradle + // to add repositories at settings level. This is required because EAS Build + // uses PREFER_SETTINGS repositories mode, which ignores project-level repositories. + const reposBlock = ` +// Added by withSettingsRepositories plugin +dependencyResolutionManagement { + repositories { + maven { url 'https://jitpack.io' } + maven { url 'https://jcenter.bintray.com' } + } +} +`; + + if (!contents.includes('https://jcenter.bintray.com')) { + contents += reposBlock; + } + + config.modResults.contents = contents; + return config; + }); +}; + +module.exports = withSettingsRepositories;