From 17b59084c4a3345f127f45d3083254e060360bba Mon Sep 17 00:00:00 2001 From: xuatz Date: Sat, 16 Aug 2025 23:28:00 +0900 Subject: fix(mobile): change to metro.config.cjs since migrating to type: module (#1845) --- apps/mobile/plugins/trust-local-certs.cjs | 43 +++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 apps/mobile/plugins/trust-local-certs.cjs (limited to 'apps/mobile/plugins/trust-local-certs.cjs') diff --git a/apps/mobile/plugins/trust-local-certs.cjs b/apps/mobile/plugins/trust-local-certs.cjs new file mode 100644 index 00000000..40275034 --- /dev/null +++ b/apps/mobile/plugins/trust-local-certs.cjs @@ -0,0 +1,43 @@ +const { AndroidConfig, withAndroidManifest } = require("@expo/config-plugins"); +const { Paths } = require("@expo/config-plugins/build/android"); +const path = require("path"); +const fs = require("fs"); +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; + }); +}; + +async function setCustomConfigAsync(config, androidManifest) { + const src_file_pat = path.join(__dirname, "network_security_config.xml"); + const res_file_path = path.join( + await Paths.getResourceFolderAsync(config.modRequest.projectRoot), + "xml", + "network_security_config.xml", + ); + + const res_dir = path.resolve(res_file_path, ".."); + + if (!fs.existsSync(res_dir)) { + await fsPromises.mkdir(res_dir); + } + + try { + await fsPromises.copyFile(src_file_pat, res_file_path); + } catch (e) { + throw e; + } + + const mainApplication = getMainApplicationOrThrow(androidManifest); + mainApplication.$["android:networkSecurityConfig"] = + "@xml/network_security_config"; + + return androidManifest; +} + +module.exports = withTrustLocalCerts; -- cgit v1.2.3-70-g09d2