chore: update dependencies and refactor config plugin imports (#993)

This commit is contained in:
Gauvain
2025-08-29 22:06:50 +02:00
committed by GitHub
parent f54da12fdb
commit a68d8500a6
35 changed files with 591 additions and 302 deletions

View File

@@ -1,5 +1,4 @@
const { AndroidConfig, withAndroidManifest } = require("@expo/config-plugins");
const { Paths } = require("@expo/config-plugins/build/android");
const { AndroidConfig, withAndroidManifest } = require("expo/config-plugins");
const path = require("node:path");
const fs = require("node:fs");
const fsPromises = fs.promises;
@@ -7,16 +6,18 @@ const fsPromises = fs.promises;
const { getMainApplicationOrThrow } = AndroidConfig.Manifest;
const withTrustLocalCerts = (config) => {
return withAndroidManifest(config, async (config) => {
config.modResults = await setCustomConfigAsync(config, config.modResults);
return config;
return withAndroidManifest(config, async (mod) => {
mod.modResults = await setCustomConfigAsync(mod, mod.modResults);
return mod;
});
};
async function setCustomConfigAsync(config, androidManifest) {
const src_file_path = path.join(__dirname, "network_security_config.xml");
const res_file_path = path.join(
await Paths.getResourceFolderAsync(config.modRequest.projectRoot),
await AndroidConfig.Paths.getResourceFolderAsync(
config.modRequest.projectRoot,
),
"xml",
"network_security_config.xml",
);
@@ -31,12 +32,15 @@ async function setCustomConfigAsync(config, androidManifest) {
await fsPromises.copyFile(src_file_path, res_file_path);
} catch (e) {
throw new Error(
`Failed to copy network security config file from ${src_file_path} to ${res_file_path}: ${e.message}`,
`Failed to copy network security config file from ${src_file_path} to ${res_file_path}. [Hint: Check Android write permissions and file paths]`,
{ cause: e },
);
}
const mainApplication = getMainApplicationOrThrow(androidManifest);
mainApplication.$["android:networkSecurityConfig"] =
"@xml/network_security_config";
if (!mainApplication.$["android:networkSecurityConfig"]) {
mainApplication.$["android:networkSecurityConfig"] =
"@xml/network_security_config";
}
return androidManifest;
}