From 475face0d37e6793589188263abbe5783049748e Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 6 Jun 2026 06:08:26 +0000 Subject: [PATCH] fix(android): write network_security_config.xml to res/xml walk() only matches files, so ensureNetworkSecurityXml never found app/src/main/res and skipped creating the XML. AndroidManifest still referenced @xml/network_security_config, causing AAPT link failures. Co-authored-by: ShuMengya --- .github/scripts/patch-android-system-bars.mjs | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/.github/scripts/patch-android-system-bars.mjs b/.github/scripts/patch-android-system-bars.mjs index e900864..2c196bc 100644 --- a/.github/scripts/patch-android-system-bars.mjs +++ b/.github/scripts/patch-android-system-bars.mjs @@ -112,18 +112,19 @@ const NETWORK_SECURITY_XML = ` `; function ensureNetworkSecurityXml(androidRoot) { - const resDirs = walk(androidRoot, (p) => { - const normalized = p.replace(/\\/g, "/"); - return normalized.endsWith("/app/src/main/res"); - }); - - for (const resDir of resDirs) { - const xmlDir = path.join(resDir, "xml"); - fs.mkdirSync(xmlDir, { recursive: true }); - const target = path.join(xmlDir, "network_security_config.xml"); - fs.writeFileSync(target, NETWORK_SECURITY_XML); - console.log(`Wrote ${path.relative(root, target)}`); + const resDir = path.join(androidRoot, "app", "src", "main", "res"); + if (!fs.existsSync(resDir)) { + console.warn( + `No Android res directory found for network_security_config.xml: ${resDir}`, + ); + return; } + + const xmlDir = path.join(resDir, "xml"); + fs.mkdirSync(xmlDir, { recursive: true }); + const target = path.join(xmlDir, "network_security_config.xml"); + fs.writeFileSync(target, NETWORK_SECURITY_XML); + console.log(`Wrote ${path.relative(root, target)}`); } function patchAndroidManifest(androidRoot) {