From ee3f85f4fef5a808dc3a2ed11ab625ac4ca20f92 Mon Sep 17 00:00:00 2001 From: tianma-if Date: Sun, 19 Jul 2026 16:04:38 +0800 Subject: [PATCH] fix(mobile): ship EdgeEver launcher icon --- apps/mobile/app.json | 8 ++++--- .../assets/adaptive-icon-foreground.png | Bin 0 -> 29810 bytes .../assets/adaptive-icon-foreground.svg | 5 +++++ apps/mobile/assets/icon.png | Bin 0 -> 9717 bytes apps/mobile/package.json | 2 +- package.json | 1 + scripts/build-android-local.sh | 9 +++++++- scripts/prepare-mobile-icons.mjs | 20 ++++++++++++++++++ 8 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 apps/mobile/assets/adaptive-icon-foreground.png create mode 100644 apps/mobile/assets/adaptive-icon-foreground.svg create mode 100644 apps/mobile/assets/icon.png create mode 100644 scripts/prepare-mobile-icons.mjs diff --git a/apps/mobile/app.json b/apps/mobile/app.json index 661452ba..c6b68d1b 100644 --- a/apps/mobile/app.json +++ b/apps/mobile/app.json @@ -3,7 +3,8 @@ "name": "EdgeEver", "slug": "edgeever", "scheme": "edgeever", - "version": "0.4.6", + "version": "0.4.7", + "icon": "./assets/icon.png", "orientation": "portrait", "userInterfaceStyle": "light", "newArchEnabled": true, @@ -13,9 +14,10 @@ }, "android": { "package": "org.edgeever.mobile", - "versionCode": 12, + "versionCode": 13, "adaptiveIcon": { - "backgroundColor": "#f8fafc" + "backgroundColor": "#d1fae5", + "foregroundImage": "./assets/adaptive-icon-foreground.png" } }, "plugins": [ diff --git a/apps/mobile/assets/adaptive-icon-foreground.png b/apps/mobile/assets/adaptive-icon-foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..8ec4721f2231f848b25b30f5081c248930a6b1b4 GIT binary patch literal 29810 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 Lu6{1-oD!M + + + + diff --git a/apps/mobile/assets/icon.png b/apps/mobile/assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0df61e2bcfd540d940a1b248dc31fbb618e141a3 GIT binary patch literal 9717 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 J`q}p8e*mIF?|c9N literal 0 HcmV?d00001 diff --git a/apps/mobile/package.json b/apps/mobile/package.json index ba682f76..1347fb66 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -1,6 +1,6 @@ { "name": "@edgeever/mobile", - "version": "0.4.6", + "version": "0.4.7", "private": true, "type": "module", "main": "expo-router/entry", diff --git a/package.json b/package.json index c61d12a0..28e1ff6d 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "dev:api:remote": "bun scripts/run-wrangler.mjs dev --remote --port 8787", "dev:web": "vite --config apps/web/vite.config.ts --host 127.0.0.1 --port 5173", "dev:mobile": "bun --cwd apps/mobile expo start", + "prepare:mobile:icons": "bun scripts/prepare-mobile-icons.mjs", "build:android:fast": "bash scripts/build-android-local.sh fast", "build:android:play": "bash scripts/build-android-local.sh play", "build:android:play:local": "bun --env-file=${EDGE_EVER_ANDROID_ENV_FILE:-$HOME/.config/edgeever/android/signing.env} run build:android:play", diff --git a/scripts/build-android-local.sh b/scripts/build-android-local.sh index 0836aff2..e9f726e5 100755 --- a/scripts/build-android-local.sh +++ b/scripts/build-android-local.sh @@ -38,8 +38,15 @@ fi cd "$PROJECT_ROOT" bun install --frozen-lockfile +bun run prepare:mobile:icons -PREBUILD_FINGERPRINT="$({ shasum apps/mobile/app.json bun.lock; } | shasum | awk '{print $1}')" +PREBUILD_FINGERPRINT="$({ + shasum \ + apps/mobile/app.json \ + apps/mobile/assets/adaptive-icon-foreground.svg \ + apps/web/public/pwa-512x512.png \ + bun.lock +} | shasum | awk '{print $1}')" PREBUILD_STAMP="$ANDROID_DIR/.edgeever-prebuild-fingerprint" PREVIOUS_FINGERPRINT="$(test -f "$PREBUILD_STAMP" && cat "$PREBUILD_STAMP" || true)" diff --git a/scripts/prepare-mobile-icons.mjs b/scripts/prepare-mobile-icons.mjs new file mode 100644 index 00000000..54ad0934 --- /dev/null +++ b/scripts/prepare-mobile-icons.mjs @@ -0,0 +1,20 @@ +import { copyFile, mkdir } from "node:fs/promises"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import sharp from "sharp"; + +const projectRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), ".."); +const mobileAssetsDir = path.join(projectRoot, "apps/mobile/assets"); +const sharedIconPath = path.join(projectRoot, "apps/web/public/pwa-512x512.png"); +const mobileIconPath = path.join(mobileAssetsDir, "icon.png"); +const adaptiveIconSourcePath = path.join(mobileAssetsDir, "adaptive-icon-foreground.svg"); +const adaptiveIconPath = path.join(mobileAssetsDir, "adaptive-icon-foreground.png"); + +await mkdir(mobileAssetsDir, { recursive: true }); +await copyFile(sharedIconPath, mobileIconPath); +await sharp(adaptiveIconSourcePath, { density: 384 }) + .resize(1024, 1024) + .png() + .toFile(adaptiveIconPath); + +console.log("已同步 Android 图标资源");