App 图标尺寸规范速查(2026):iOS / Android / Web PWA 全平台一览
2026/8/31 5:10:46 网站建设 项目流程

每年都有人在这件事上翻车

App 图标大概是整个发布流程里最"看起来简单"的一环,但被它卡住的人不在少数。几个经典翻车现场:

  • 上传 App Store Connect 直接被拒:ITMS-90717: Invalid App Store Icon——图标带了alpha 通道
  • 图标在 iPhone 上边缘一圈白边——设计师好心预切了圆角,iOS 又蒙了一层;
  • 安卓机上 logo 被圆形蒙版裁掉一角——没遵守自适应图标的安全区
  • PWA 装进启动器后图标内容被切掉一半——没有出maskable变体。

这篇文章把三大平台的图标规范一次讲清,建议收藏当速查表用。

一、iOS

现状:单一 1024 尺寸时代

Xcode 14 起,asset catalog 支持单尺寸(Single Size)模式:只提供一张 1024×1024 的 PNG,Xcode 自动生成全部变体。这是目前官方推荐的做法。

但三条规则没有变:

  1. PNG 格式,不能含 alpha 通道 / 透明区域(报错 ITMS-90717);
  2. 不要预切圆角——系统会自动应用遮罩,预切反而会出白边;
  3. 背景必须完全不透明,建议 sRGB 色彩空间。

去 alpha 通道的命令行操作:

# ImageMagick 检查是否含 alphaidentify-verboseicon.png|grep-ialpha# 去除 alpha 通道convert icon.png-alphaoff icon.png

传统全尺寸表(老工具链 / 特殊需求)

如果你的构建流程仍需要完整 AppIcon.appiconset,标准结构如下:

尺寸(pt)@1x@2x@3xidiom
20pt20px40px60pxiphone
20pt20px40pxipad
29pt29px58px87pxiphone
29pt29px58pxipad
40pt80px120pxiphone
40pt40px80pxipad
60pt120px180pxiphone
76pt76px152pxipad
83.5pt167pxipad
1024pt1024pxios-marketing

配套的 Contents.json 里声明每一项的 size / idiom / filename / scale。手写这个文件很容易漏项,这也是很多人用自动生成工具的原因——Xcode 校验严格,缺一项构建直接报错。

二、Android

传统启动器图标:五档密度

密度倍率图标尺寸
mdpi48×48
hdpi1.5×72×72
xhdpi96×96
xxhdpi144×144
xxxhdpi192×192

分别放进res/mipmap-{密度}/ic_launcher.png

自适应图标(Android 8.0+):分层的逻辑

自适应图标是现在 Android 的正解,规则和 iOS 思路完全不同:

  • 画布108×108 dp,由前景层 + 背景层两张图层叠加;
  • 系统蒙版只保留中心约 72dp 的可视区域,关键内容必须收进中心 66dp 安全区(直径),否则换一个形状的 launcher 蒙版就裁内容;
  • 前景层就是你的 logo(镂空背景),背景层是纯色或图案——两层分开,系统才能自由换蒙版形状(圆形、圆角方、水滴等各厂商不同);
  • 像素换算:xxxhdpi(4×)下每层 432×432 px;
  • 工程里通过mipmap-anydpi-v26/ic_launcher.xml声明两层引用。
<?xml version="1.0" encoding="utf-8"?><adaptive-iconxmlns:android="http://schemas.android.com/apk/res/android"><backgroundandroid:drawable="@color/ic_launcher_background"/><foregroundandroid:drawable="@mipmap/ic_launcher_foreground"/></adaptive-icon>

另外 Android 13(API 33)起支持主题化图标(跟随系统壁纸取色的 monochrome 层),属于可选增强项,普通应用可以后续再补。

Google Play 商店图

独立于 APK 之外,Play Console 需要一张512×512 PNG(32 位、不透明)。很多团队上线前一刻才发现手里没有这张尺寸,又临时开 PSD 重导。

三、Web / PWA

尺寸清单

文件尺寸用途
favicon.ico / png16×16、32×32浏览器标签页
favicon-48.png48×48部分场景的站点图标
apple-touch-icon.png180×180iOS「添加到主屏幕」
icon-192.png192×192PWA 基础要求
icon-512.png512×512PWA 基础要求 / 启动画面
icon-192-maskable.png192×192安卓启动器蒙版版
icon-512-maskable.png512×512安卓启动器蒙版版

maskable 安全区

PWA 装进安卓启动器后,图标会被裁成圆形/圆角方形,只有中心直径 80% 的圆形区域保证可见。maskable 版本要求:

  • 全出血(内容铺满整个画布)+ 不透明背景;
  • logo 收进中心 80% 安全区;
  • 建议anymaskable各出一套,别一张图混用两种 purpose(带留白的图在网页 favicon 场景会显得过小)。

manifest.json 的标准写法:

{"name":"My App","short_name":"My App","icons":[{"src":"/icon-192.png","sizes":"192x192","type":"image/png","purpose":"any"},{"src":"/icon-512.png","sizes":"512x512","type":"image/png","purpose":"any"},{"src":"/icon-192-maskable.png","sizes":"192x192","type":"image/png","purpose":"maskable"},{"src":"/icon-512-maskable.png","sizes":"512x512","type":"image/png","purpose":"maskable"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}

Lighthouse 有专门的 maskable-icon 审计项,缺了会扣 PWA 分。

四、翻车原因速查表

症状平台原因解决
ITMS-90717 被拒iOS1024 图含 alpha 通道导出去透明:convert icon.png -alpha off icon.png
图标边缘白圈iOS预切了圆角提供方形满幅图,遮罩交给系统
logo 被裁一角Android内容超出 66dp 安全区缩小前景层主体
启动器里图标内容缺半Web缺 maskable 变体补 80% 安全区内构图的全出血版
图标糊全平台拿小图放大型从 1024 母版一次性降采样出全套

五、出图方式怎么选

  • 设计软件手动导出:自由度最高,适合有设计师的团队,但改一次图标就要重导二三十个文件;
  • 写脚本批处理(sharp / ImageMagick):适合已有品牌母版图、只要切尺寸的场景,但处理不了 Android 双层拆分这种逻辑活;
  • 在线生成工具:从母版直接出全套 ZIP。如果连母版都没有,现在也有 AI 生成 + 工程化导出一体的方案,比如 AppIconKitchen , iconcraft, appicons.ai ,从文字描述生成图标,导出的 ZIP 里ios/AppIcon.appiconsetandroid/mipmap各密度、web/manifest.json、Play 商店图全部齐活,注册送免费积分、支持支付宝付款。

规范年年微调,但"无透明、不预切圆角、守安全区"这三条至少近十年没变过。把这篇存下来,下次上架前对一遍,能省掉不少来回折腾。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询