在一次正常的提交流程中,IPA 上传完成后,很快收到一条提示:
ERROR ITMS-90704: Missing Marketing Icon
没有崩溃日志、编译报错,只是上传的时候被拒了,这种问题如果直接改配置,容易反复试错。更稳妥的方式,是先确认 IPA 里到底有没有图标。
一、先不要改项目,先看 IPA 的内容
很多人第一步会打开 Xcode 去改 Assets,但其实更直接的方式是先确认 IPA 包里是否真的包含 1024 图标
可以直接解压 IPA:
unzip app.ipa -d ipa_tmp
进入目录:
ipa_tmp/Payload/YourApp.app/
然后检查:
- 是否存在
Assets.car - 是否存在 AppIcon 资源
如果 Assets.car 存在,但仍然报错,就需要进一步判断:
Assets.car 里是否包含 1024x1024 marketing icon
二、常见误区:有图标 ≠ 有营销图标
在 Assets.xcassets 中:
- AppIcon 中包含多尺寸图标
- 但 1024x1024 是“单独要求”
错误通常出现在:
- 只配置了 180 / 120 / 60 等尺寸
- 或者 1024 图标没有被正确打包
三、验证 Assets.car 内容(关键步骤)
在 macOS 上可以使用:
assetutil --info Assets.car
查找输出中是否包含:
"SizeOnDisk": 1024x1024
如果没有,说明:
- 打包时未包含 marketing icon
- 或 icon set 配置不完整
四、问题出现的几种具体情况
结合实际排查,可以归纳出几种触发方式:
情况 1:图标文件存在,但未被引用
Assets 中有 1024 图片,但:
- 没有拖入 AppIcon
- 或未勾选对应位置
情况 2:使用第三方打包工具
例如:
- HBuilder
- 一些跨平台工具
这些工具如果未正确生成 Assets.car,会导致:
- 图标存在
- 但未进入最终包
情况 3:图标格式不符合要求
即使尺寸正确,也可能失败:
- 不是 PNG
- 使用了透明通道(某些场景)
- 色彩空间不是 RGB
五、修复流程
步骤 1:准备正确图标
要求:
- 1024x1024
- PNG
- RGB
步骤 2:重新生成完整图标资源
手动处理容易遗漏尺寸,可以直接使用工具生成完整资源。
例如使用 AppUploader(开心上架) 的图标生成工具:
- 打开图标生成页面
- 上传 1024 原图
- 自动生成 iOS 所需全部尺寸
- 导出 Assets.car 或图标资源
这样可以避免:
- 尺寸缺失
- 命名错误
- 格式问题
步骤 3:替换项目图标
在 Xcode 中:
- 打开 Assets.xcassets
- 删除旧 AppIcon
- 导入新生成的图标集
- 确认 1024 图标已填充
步骤 4:重新打包
执行 Archive → Export IPA。
步骤 5:再次验证 IPA
重复第一步:
- 解压 IPA
- 检查 Assets.car
确认已包含 marketing icon。
六、上传环节的检查
在上传前,可以增加一个检查动作:
- 确认 Info.plist 中 icon 配置
- 确认 Assets.car 存在
- 确认 Bundle ID 正确
如果使用 Windows 上传工具,例如 AppUploader:
- 选择 IPA
- 上传前检查文件
- 切换上传通道
- 提交上传
这样可以减少反复失败的情况。
ITMS-90704 是最终包中没有符合要求的 marketing icon,不是图标缺失。