fix: Android app icon after init and Windows in-app link navigation

This commit is contained in:
2026-05-29 15:28:20 +08:00
parent ef0e406ec8
commit fa083c5ddc
10 changed files with 4724 additions and 45 deletions

View File

@@ -10,7 +10,17 @@ const templateDir = path.join(root, "template");
const ICON_PRIORITY = ["logo.png", "logo.jpg", "logo.jpeg", "favicon.ico"];
const BUNDLE_ICONS = [
"icons/32x32.png",
"icons/128x128.png",
"icons/128x128@2x.png",
"icons/icon.icns",
"icons/icon.ico",
];
function findIconSource(baseDir) {
if (!fs.existsSync(baseDir)) return null;
for (const name of ICON_PRIORITY) {
const direct = path.join(baseDir, name);
if (fs.existsSync(direct)) return direct;
@@ -27,16 +37,26 @@ function findIconSource(baseDir) {
return null;
}
export function generateAppIcons() {
export function findIconSourceForJob(root, jobId, distDir) {
const buildDir = jobId ? path.join(root, "builds", jobId) : null;
if (buildDir && fs.existsSync(buildDir)) {
const fromUpload = findIconSource(buildDir);
if (fromUpload) return fromUpload;
}
return findIconSource(distDir);
}
export function generateAppIcons(options = {}) {
const { jobId } = options;
if (!fs.existsSync(distDir)) {
console.log("No dist directory, keeping default icons");
return;
return false;
}
const iconSource = findIconSource(distDir);
const iconSource = findIconSourceForJob(root, jobId, distDir);
if (!iconSource) {
console.log("No logo.png or favicon.ico found, keeping default icons");
return;
return false;
}
console.log(`Generating app icons from: ${path.relative(root, iconSource)}`);
@@ -44,4 +64,15 @@ export function generateAppIcons() {
cwd: templateDir,
stdio: "inherit",
});
return true;
}
export { BUNDLE_ICONS };
const isCli =
process.argv[1] &&
path.resolve(process.argv[1]) === fileURLToPath(import.meta.url);
if (isCli) {
generateAppIcons({ jobId: process.env.JOB_ID });
}