Fix EAS build repositories issues by modifying both project-level and settings-level repository blocks
This commit is contained in:
@@ -1,12 +1,9 @@
|
||||
const { withSettingsGradle } = require('@expo/config-plugins');
|
||||
const { withProjectBuildGradle, withSettingsGradle } = require('@expo/config-plugins');
|
||||
|
||||
const withSettingsRepositories = (config) => {
|
||||
return withSettingsGradle(config, (config) => {
|
||||
// 1. Modify settings.gradle (settings-level repositories)
|
||||
config = 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 {
|
||||
@@ -16,14 +13,32 @@ dependencyResolutionManagement {
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
if (!contents.includes('https://jcenter.bintray.com')) {
|
||||
contents += reposBlock;
|
||||
}
|
||||
config.modResults.contents = contents;
|
||||
return config;
|
||||
});
|
||||
|
||||
// 2. Modify root build.gradle (project-level repositories)
|
||||
config = withProjectBuildGradle(config, (config) => {
|
||||
let contents = config.modResults.contents;
|
||||
|
||||
// Inject jcenter and jitpack into the allprojects.repositories block
|
||||
if (!contents.includes('https://jcenter.bintray.com')) {
|
||||
contents = contents.replace(
|
||||
/maven\s*\{\s*url\s*['"]https:\/\/www\.jitpack\.io['"]\s*\}/g,
|
||||
`maven { url 'https://www.jitpack.io' }
|
||||
maven { url 'https://jcenter.bintray.com' }
|
||||
maven { url 'https://jitpack.io' }`
|
||||
);
|
||||
}
|
||||
|
||||
config.modResults.contents = contents;
|
||||
return config;
|
||||
});
|
||||
|
||||
return config;
|
||||
};
|
||||
|
||||
module.exports = withSettingsRepositories;
|
||||
|
||||
Reference in New Issue
Block a user