# app 项目替换 · C 泓池 / 深空蓝
按 `hehui/brands/honmatrix/` 的结构出的七件资产,目录结构与目标一一对应,可整体覆盖。
```
icon.png 1024×1024 圆角+alpha Android 传统图标 / Expo 顶层 icon / 启动页图
android-icon-foreground.png 512×512 透明底 自适应前景,图形收在 66dp 安全区内
android-icon-background.png 512×512 圆角+alpha 自适应背景,深空蓝渐变满版
android-icon-monochrome.png 432×432 仅 alpha Android 13+ 主题图标,系统着色
splash-icon.png 512×512 透明底 启动页,只有环 + 水位,不带底板
favicon.png 48×48 圆角+alpha Web
expo.icon/ Apple Icon Composer 分层包
├ icon.json
└ Assets/pool-ring.svg pool-water.svg
```
每个 PNG 都是从矢量按目标尺寸直接光栅化的,不是 1024 降采样——48px 的 favicon 因此比缩图锐。
## 圆角
`icon.png`、`android-icon-background.png`、`favicon.png` 三件已切 iOS 连续曲率 squircle,R = 边长 × 22.37%,
遮罩超采样后再降到目标尺寸(48px 的 favicon 按 32 倍采),边缘不毛。方角原图留在 `_原始方角备份/`,
对照页 `_圆角预览.html` 双击可看(深底 / 浅底 / 透明格三种底)。
三件之外不切:`android-icon-foreground.png`、`android-icon-monochrome.png`、`splash-icon.png` 是透明底的
主体标记,本来就没有底板;`expo.icon` 的形状由 iOS 系统自己套。
`ios.icon` 指的是 `expo.icon` 分层包,iOS 上架用不到 `icon.png`,所以这张带 alpha 不触发「图标不能带透明通道」的审核。
Android 自适应图标的系统遮罩只露中间 72/108,`android-icon-background.png` 的四角本来就裁在可见区外——
这张切圆角只影响单看文件时的观感,设备上无差别。真正被用户看见圆角的是 `favicon.png`(标签页、书签、桌面快捷方式
都不套系统遮罩),以及走 `expo-splash-screen` 的启动页图 `icon.png`。
## 落位
```bash
cd /Users/guoguo/Desktop/HeHuiDeepBlue
S="设计/深空蓝/图标/app项目替换"
T="hehui/brands/honmatrix"
cp "$S"/*.png "$T"/
rm -rf "$T/expo.icon" && cp -R "$S/expo.icon" "$T/"
```
`expo.icon` 要**整个目录替换**,不能只覆盖 icon.json——旧的 `expo-symbol 2.svg` 和 `grid.png` 留在 `Assets/` 里不会被用到,但会一直挂在库里。
## brand.json 要改两处
1. `identity.androidAdaptiveIconBackground`:`#E6F4FE` → `#1B4FD8`
现在是浅冰蓝,配深空蓝图标时 Android 自适应图标的底色会和图标本身脱节。
2. `todos` 里删掉这一条:
> `expo.icon 里的图层仍是 Expo 模板 logo(expo-symbol 2.svg),正式 iOS 图标确定后替换`
`app.config.ts` 对 prod 构建会检查 `todos` 是否清空,不删这条出不了正式包。
`splash.backgroundColor` (`#1B4FD8`) 和 `darkBackgroundColor` (`#0C2C86`) 都不用动——splash-icon 是透明底的主体标记,深浅两档都验过。`splash.imageWidth: 76` 也维持原值。
## expo.icon 的验证与参数
`expo.icon/icon.json` 是照 Apple Icon Composer 的格式手写的,不是 Xcode 那个 App 生成的,但已经用 Xcode 26.6 的 `actool` 实际编译验证过:
```bash
xcrun actool --app-icon expo --platform iphoneos --minimum-deployment-target 18.0 \
--target-device iphone --output-partial-info-plist /tmp/p.plist \
--compile /tmp/out hehui/brands/honmatrix/expo.icon
```
exit 0,无 error / warning,产出 `Assets.car` 与 `expo60x60@2x.png`、`expo76x76@2x~ipad.png`。图层参数说明:
- `fill.automatic-gradient` = `extended-srgb:0.07059,0.23529,0.68235,1.0`,即 `#123CAE`(设计系统 `--brand-2`),由系统生成渐变底。**不要填 `#1B4FD8`**——actool 的自动渐变会往亮里推,填品牌基色出来的底比母版浅一截,填 `--brand-2` 才和母版的深度对得上。
- 两个图层都是 688×688、`viewBox 168 168 688 688`,共用同一取景框,所以都不带 `position` 偏移,默认居中即对齐
- 图层顺序前→后:`pool-ring`(环,抬起)、`pool-water`(水位,下沉)
- `translucency` 显式写 `{enabled: true, value: 0.2}`、`shadow` neutral 0.5。**这个键不能省**:省略时 actool 会套一个高得多的默认磨砂值,白环发灰、金色水面发浑,实测和母版差很远。原 Expo 模板包里的 0.5 就是这个效果。
## 华为应用市场
`_华为应用市场/appgallery-icon-216.png`:216×216、直角、无 alpha、PNG(约 37 KB)。按 AppGallery「上传直角图标 + Mask 蒙层」的要求,
由 `_原始方角备份/icon.png` 缩出,**不要传切过圆角的 `icon.png`**,否则平台再套一次蒙层,四角会露出透明。
带下划线的目录不在「落位」的 `cp *.png` 范围内,不会进 `hehui/brands/`。
`_华为应用市场/应用介绍截图/`:竖向截图,9:16,`1080x1920/` 与 `450x800/` 两档内容相同,PNG 无 alpha,均远小于 2 MB。
由同目录 6 张原始截屏处理而来:去掉了开发包的 Tools 悬浮按钮、状态栏(含 iPhone 灵动岛)、Android 手势条和滚动条;
启动页只压缩空白渐变段、消息页只删中间空白行、「我的」页两侧按底色延展后等比缩放,界面内容未改。
上限 5 张,传 01–05;`06` 与 01 同屏,备用。
## 荣耀开放平台
`_荣耀开放平台/honor-icon-320.png`:320×320、直角、无 alpha、8bit RGB PNG(34.2 KB,限 200 KB)。
HONOR Developers「创建应用 → 应用图标」要求上传直角正方形图标,平台自己套圆角蒙层,所以和华为一样
**不要传切过圆角的 `icon.png`**。
和 216 那张的做法不同:这张不是从 1024 缩的,是拿 `svg/icon-c-hongchi-deep.svg` 用 Chrome 无头模式渲到
1280(4× 超采样)再 4×4 box 平均降到 320——整数倍下采样等于按覆盖率积分,环的边缘没有 Lanczos 的振铃。
与母版 `_原始方角备份/icon.png` 按 32×32 分块比均值,最大差 0.9/255、平均 0.06,是同一张图。
复现:
```bash
SP=$(mktemp -d); SVG="设计/深空蓝/图标/svg/icon-c-hongchi-deep.svg"
{ echo ''; cat "$SVG"; } > $SP/r.html
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --headless=old --disable-gpu \
--hide-scrollbars --force-device-scale-factor=1 --virtual-time-budget=4000 \
--user-data-dir=$SP/cp --screenshot=$SP/raw.png --window-size=1280,1280 file://$SP/r.html
# 再 4×4 box 降到 320、去 alpha 存 PNG
```
注意 **不要用 sed 把 `