工程接入 .icns 与设计师手上的「一张主图标」之间,往往隔着一整组精确像素的 PNG与色彩空间合同。本文面向设计交付与客户端工程,用选型对比表对齐何时交付 ICNS、何时保留 .iconset 源目录;给出 iconset 标准文件名与像素表、sRGB 验收清单,以及 sips / iconutil 的可复制命令与远程 Mac M4批处理建议。色彩总原则可对照《Mac PNG 色彩管理与 sRGB 验收》;与 iOS 同批上架时可延伸阅读《iOS App Icon 交付矩阵》。更多设计向实践见技术见解 · Mac M4 与实践列表。
① ICNS / iconset / 散装 PNG 决策矩阵
Xcode 与多数 Mac 工程最终消费的是编译进资源包的 .icns或 Asset Catalog;但可复现流水线应保留中间层 .iconset(一组命名严格的 PNG),便于差分、重打包与像素审计。下表可作团队「交付合同」附录。
| 交付形态 | 适用场景 | 优点 | 风险点 |
|---|---|---|---|
| .icns 单文件 | 给工程直接拖入、对外分发二进制资源 | 单文件易归档;与历史 CMake/Makefile 流程兼容 | 无法再从中无损拆回全套 PNG 时,后续改稿成本高;需配套版本号 |
| .iconset 目录 | 版本库源码、CI 打包、设计返工频繁 | 可逐张替换;iconutil 可重复生成 icns |
文件名或像素错一档即打包失败或模糊;需自动化校验 |
| 散装多尺寸 PNG(非 iconset 命名) | 仅用于营销预览、文档插图 | 命名灵活 | 勿与工程图标混用——易与 iconutil 约定不一致 |
② .iconset 标准文件名与像素尺寸表
下列为 macOS 常见的 AppIcon.icns 源 .iconset 约定(文件名与实际像素宽高必须一致)。大版本升级请以 Apple 当前文档为准,并在团队 README 冻结「本仓库采用的槽位集」。
| 文件名 | 输出 PNG 像素(宽 × 高) |
|---|---|
icon_16x16.png |
16 × 16 |
icon_16x16@2x.png |
32 × 32 |
icon_32x32.png |
32 × 32 |
icon_32x32@2x.png |
64 × 64 |
icon_128x128.png |
128 × 128 |
icon_128x128@2x.png |
256 × 256 |
icon_256x256.png |
256 × 256 |
icon_256x256@2x.png |
512 × 512 |
icon_512x512.png |
512 × 512 |
icon_512x512@2x.png |
1024 × 1024 |
从矢量或 1024 母版缩小时,建议偶数像素对齐并锁定插值算法,避免 Dock 小尺寸发糊。命名与倍率可对照《三款工具批量导出 PNG 工作流》。
③ sRGB 与 ICC 验收清单
图标在 sRGB 屏与广色域创作屏之间最容易出现「品牌色发飘」。交付前建议按表勾选(可与《PNG 元数据与 sRGB 无损再压清单》共用字段)。
| 检查项 | 建议标准 | 操作提示 |
|---|---|---|
| 交付色彩空间 | sRGB,8 bit/通道 | 广色域母版先转换再导出各档 PNG |
| ICC 嵌入策略 | 与工程 / Web 规范一致(嵌或剥) | 全仓库统一;禁止混用未声明策略 |
| 透明通道 | 按槽位合同(主图标多要求实底) | 浅/深底预览抗锯齿边缘 |
| 像素尺寸 | 与上表完全一致 | sips -g pixelWidth -g pixelHeight 抽检或全量 diff |
| 体积异常 | 无意外巨型 PNG | 可结合无损再压流程,保留像素一致 |
④ sips 与 iconutil 参数示例
在 macOS 上 sips 适合批量缩放;色彩转换需使用匹配到 sRGB 描述文件的路径(下例为系统常见路径,若系统本地化名称不同请以本机 ColorSync 目录为准)。
缩放至 512×512(示例):
sips -z 512 512 "master_1024_srgb.png" --out "MyIcon.iconset/icon_512x512.png"
将单张图匹配到 sRGB ICC(转换意图由系统处理,适合流水线前置):
sips --matchTo "/System/Library/ColorSync/Profiles/sRGB IEC61966-2.1.icc" \
"master_p3.png" --out "master_srgb.png"
从 .iconset 生成 .icns:
iconutil -c icns -o "MyIcon.icns" "MyIcon.iconset"
批量读取尺寸(配合 xargs 并行,按机器核数调整 -P):
find "MyIcon.iconset" -name "*.png" -print0 | xargs -0 -P 8 -I {} sips -g pixelWidth -g pixelHeight "{}"
输出与期望 CSV diff,失败写入 manifest 重跑;编排可参考《PNG CLI 串联与重试模板》。
⑤ 远程 M4 批处理与 manifest
图标重导出适合远程 Mac M4固定 sips 版本并行跑。推荐 sources/、iconset/、dist/(.icns)、logs/ + manifest.jsonl(宽高、哈希、规则版)。夜间批跑不占本机;大仓可只跟踪 .iconset,.icns 由 CI 产出。
⑥ 签字验收总表
| # | 验收项 | 通过条件 |
|---|---|---|
| 1 | 文件齐全 | .iconset 内 10 个 PNG 文件名与表一致且无多余临时文件 |
| 2 | 像素 | 每张宽高与表中像素完全匹配 |
| 3 | 色彩 | 已按合同落 sRGB;抽检品牌色与线稿细线 |
| 4 | 透明与圆角 | 方形交付;透明槽位已在 README 声明并通过浅/深底预览 |
| 5 | 打包 | iconutil 无报错生成 .icns;工程内替换后 Dock/访达目视正常 |
| 6 | 追溯 | manifest 含规则版本、工具版本(sips --version 等)与 Git 标签 |
⑦ FAQ(圆角、透明边)
问:要在 PNG 里画 macOS 圆角吗? 答:不要。系统展示时套遮罩;预圆角易造成边缘不一致。把主体放在安全区,细线勿顶格。
问:透明图标在浅色 Dock 上发灰边? 答:检查是否误用预乘 Alpha、或导出时衬底为灰;在透明棋盘与实色底对照,必要时在设计端改抗锯齿与衬底后再导出。
问:与 iOS 图标能否共用同一套 PNG? 答:像素槽位不同,不能混用文件名;可共用同一矢量母版,分别跑 iOS 与 Mac 尺寸表。参见上文 iOS 矩阵专文。
小结与租用远程 Mac
用决策矩阵分清 ICNS 与 iconset,用尺寸表 + sRGB 清单锁定像素与色彩,用 sips / iconutil 批量落地。需要固定系统、夜间批跑与 manifest 的团队,宜租用远程 Mac(M4)跑导出与像素 diff,本机留母版与签字。
套餐、价格与帮助
在 MacPng 首页了解远程 Mac 方案;需要下单选型请见 购买 / 租用,比对配置与节点请打开 价格与节点,接入与工单说明见 帮助中心。更多 PNG 与自动化文章见 技术见解 与 Mac M4 与实践筛选。