APPICON.APPICONSET

AppIcon.appiconset,拖进 Xcode 即用。

AppIcon.appiconset 是 Xcode 资源目录里存放 iOS App 图标的文件夹,由一份 Contents.json 清单和一组按「设备 idiom + 逻辑尺寸 + 倍率」命名的 PNG 组成。本页讲清它的结构,并可一键生成完整、可直接拖入工程的图标集。

打开图标生成器(iOS 标签)

生成器的 iOS 标签即产出 AppIcon.appiconset(含 Contents.json),全部在浏览器本地完成,不上传图片。

什么是 AppIcon.appiconset?

在 Xcode 里,App 图标不是散落的 PNG,而是一个名为 AppIcon.appiconset 的资源文件夹。它包含两部分:描述清单 Contents.json,和若干按「设备 idiom + 逻辑尺寸 + 倍率 scale」命名的位图。Xcode 读取 Contents.json,把每张图对应到正确的设备与场景(主屏、Spotlight、设置、App Store 等)。只要文件夹结构正确,拖进 Assets.xcassets 即可被工程识别。

iOS 图标尺寸对照表(现行规范)

下表为通用 iOS App 图标所需的完整清单;逻辑尺寸 × 倍率 = 实际像素。

Idiom(设备) 逻辑尺寸 倍率 像素 文件名
ipad20x201x20icon-20.png
iphone20x202x40icon-20@2x.png
ipad20x202x40icon-20@2x.png
iphone20x203x60icon-20@3x.png
ipad29x291x29icon-29.png
iphone29x292x58icon-29@2x.png
ipad29x292x58icon-29@2x.png
iphone29x293x87icon-29@3x.png
iphone40x402x80icon-40@2x.png
ipad40x402x80icon-40@2x.png
iphone40x403x120icon-40@3x.png
iphone60x602x120icon-60@2x.png
iphone60x603x180icon-60@3x.png
ipad76x761x76icon-76.png
ipad76x762x152icon-76@2x.png
ipad83.5x83.52x167icon-83.5@2x.png
ios-marketing1024x10241x1024icon-1024.png

Contents.json 长什么样

Contents.json 用 images 数组把每个 idiom / 尺寸 / 倍率映射到一个文件名,info 标注版本与作者。下面是与本工具输出一致的示例(节选):

{
  "images" : [
    { "idiom" : "iphone", "size" : "20x20", "scale" : "2x", "filename" : "icon-20@2x.png" },
    { "idiom" : "iphone", "size" : "60x60", "scale" : "3x", "filename" : "icon-60@3x.png" },
    { "idiom" : "ipad", "size" : "76x76", "scale" : "2x", "filename" : "icon-76@2x.png" },
    { "idiom" : "ios-marketing", "size" : "1024x1024", "scale" : "1x", "filename" : "icon-1024.png" }
  ],
  "info" : { "version" : 1, "author" : "tushuo" }
}

filename 必须与文件夹内实际 PNG 名一致;同一张图可被多个 idiom 复用(例如 40@2x 同时用于 iPhone 与 iPad 的 Spotlight)。

图标不显示 / 构建报错时怎么查

iOS 图标的坑几乎都集中在三处:文件名、尺寸和 App Icon 名称。按下面顺序排查基本都能定位。

症状 原因 处理
主屏图标空白 / 出现默认占位图Target 里勾选的 App Icon 名称与文件夹名不一致把文件夹命名为 AppIcon.appiconset,并在 Target → General 中确认名称也是 AppIcon
构建报 unassigned childContents.json 里 filename 指向的文件实际不存在逐条核对 filename 与文件夹内 PNG,大小写必须完全一致
图标边缘被裁掉 / 圆角不对PNG 本身带圆角或留白,系统又裁了一次源图应为不透明正方形满幅、不带圆角与阴影,系统会自动切形状
1024 上传被 App Store 拒绝营销图带 alpha 通道或尺寸不是精确 1024×1024导出为无 alpha 的 RGB PNG,尺寸严格 1024×1024
改了图标但模拟器没更新Asset Catalog 缓存Product → Clean Build Folder 后重跑,或删掉 AppIcon 后重新拖入

如何导入 Xcode

  1. 下载 ZIP 并解压,得到 AppIcon.appiconset 文件夹。
  2. 在 Xcode 打开工程,定位到 Assets.xcassets。
  3. 把整个 AppIcon.appiconset 文件夹拖入 Assets.xcassets(替换已有的 AppIcon)。
  4. 在 Target → General → App Icons and Launch Screen 里确认 App Icon 名称为 AppIcon。
  5. 运行到模拟器 / 真机,主屏图标即生效;上传 App Store 时会使用 1024 营销图。
打开图标生成器(iOS 标签)

常见问题

Contents.json 可以省略吗?

不行。没有 Contents.json,Xcode 无法把 PNG 对应到 idiom / 尺寸 / 倍率,资源目录会报错或图标不显示。它相当于 appiconset 的「索引」。

为什么有的尺寸看起来重复(如 40@2x 与 60@2x 都是 120px)?

逻辑尺寸不同但像素相同:40pt@2x 与 60pt@2x 都是 120px,只是用途不同(Spotlight 与主屏)。Contents.json 里它们是两个条目,可指向同一张图。

需要为深色 / 着色模式单独做图标吗?

iOS 18 起支持深色与着色外观,属可选项。可在同一 AppIcon.appiconset 的 Contents.json 里用 appearances 声明,或像本工具那样另出 AppIcon-dark / AppIcon-tinted 文件夹备用。

图片会上传到服务器吗?

不会。生成与打包全部在浏览器本地完成,原图不会离开你的设备。

深入阅读

觉得好用?Found it useful?