Иконки macOS ломаются тихо: пропущенная пара @2x, опечатка в имени под iconutil или мастер в Display P3, который после сборки в Xcode выглядит иначе, чем в макете. Командам, которым нужно сдать и папку .iconset для ревью, и скомпилированный .icns, ниже дана таблица форматов, каноническая матрица размеров PNG, чеклист sRGB/ICC, примеры sips и iconutil, а также FAQ про скругления и прозрачные края. Полный каталог материалов — в разделе «Технические идеи»; подборку сценариев дизайн-доставки и удалённого Mac удобно открыть с вкладки «Mac M4»: фильтр Mac M4. По цвету и профилям см. PNG: sRGB, Display P3 и приёмка между экранами, по метаданным — ICC и безпотерьное пересжатие PNG; если в том же релизе идут мобильные слоты — матрица iOS App Icon PNG.
Содержание
Почему пакеты иконок срываются
Три класса ошибок повторяются из релиза в релиз. Контракт имён файлов: iconutil не прощает расхождение пикселей и канонического имени — сборка падает с коротким сообщением, а дизайн теряет контекст. Уход цвета: мастера P3 рядом с UI-PNG в sRGB расходятся по жёлтым и оранжевым на разных поверхностях системы. Сюрпризы альфы: мягкий край на шахматном фоне в редакторе выглядит приемлемо, а в Dock или Finder даёт грязь. Относитесь к этому как к блокирующим дефектам и стыкуйте проверки с пакетным QA PNG на удалённом Mac (OpenClaw) и общими правилами пакетного экспорта из Figma, Sketch и Affinity.
Матрица: ICNS против .iconset
| Артефакт | Когда уместен | Ревью / diff | Типичный потребитель |
|---|---|---|---|
Папка .iconset |
Исходный набор PNG, ревью в PR, точечные перерисовки отдельных слотов | Отлично (покомпонентные дифы в Git) | Дизайн, релиз-менеджеры, каталоги ресурсов Xcode |
Файл .icns |
Готовый бинарник для инструментов «классической» модели иконок Mac | Слабо (непрозрачный бинарник) | Легаси-приложения, часть CI-упаковщиков, пайплайны вне Xcode |
При сомнениях считайте папку каноном и пересобирайте ICNS в CI или ночным заданием на Apple Silicon, чтобы версии iconutil и macOS были зафиксированы в манифесте окружения — это особенно важно для удалённого Mac M4, где крутятся длительные пакеты без нагрузки на личный ноутбук.
Обязательные размеры PNG в .iconset
Apple ожидает квадратный PNG для каждого слота ниже. Держите 1024×1024 мастер в sRGB и нарезайте сетку; эта таблица — контракт приёмки, который должны проверять скрипты и чеклист QA.
| Имя файла | Пиксели (W×H) |
|---|---|
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 px.
Чеклист приёмки sRGB и ICC
| Проверка | Метод | Критерий «принято» |
|---|---|---|
| Цветовое пространство | Инспектор Preview или sips -g profile имя.png |
Встроенный sRGB или задокументированное преобразование из P3-мастеров |
| Битность | Аудит пресета экспорта | 8 бит на канал в каждом PNG слота |
| Политика альфы | Выборка пикселей на фоне Dock / тёмной темы | Нет случайной каймы; непрозрачные иконки — сплошные вне намеренных «дыр» |
| Геометрия | sips -g pixelWidth -g pixelHeight имя.png |
Точное совпадение с строкой таблицы имён выше |
Свяжите эту таблицу с обоснованием в материале sRGB и Display P3 для Mac PNG, чтобы партии иконок наследовали ту же историю ICC, что маркетинговые статики и UI-слайсы.
sips, iconutil и шаги пакета
Ниже — воспроизводимый каркас для удалённого Mac M4: ноутбук не греется, а циклы ресайза и проверок размеров легко поставить в очередь на несколько SKU.
- Нормализуйте мастер до
1024×1024PNG в sRGB (без запечённой маски углов). - Ресайз через
sipsв каталог с суффиксом.iconset:
MASTER="AppIcon-1024.png"
OUT="MyIcon.iconset"
mkdir -p "$OUT"
sips -z 1024 1024 "$MASTER" --out "$OUT/icon_512x512@2x.png"
sips -z 512 512 "$MASTER" --out "$OUT/icon_512x512.png"
sips -z 512 512 "$MASTER" --out "$OUT/icon_256x256@2x.png"
sips -z 256 256 "$MASTER" --out "$OUT/icon_256x256.png"
sips -z 256 256 "$MASTER" --out "$OUT/icon_128x128@2x.png"
sips -z 128 128 "$MASTER" --out "$OUT/icon_128x128.png"
sips -z 64 64 "$MASTER" --out "$OUT/icon_32x32@2x.png"
sips -z 32 32 "$MASTER" --out "$OUT/icon_32x32.png"
sips -z 32 32 "$MASTER" --out "$OUT/icon_16x16@2x.png"
sips -z 16 16 "$MASTER" --out "$OUT/icon_16x16.png"
- Скомпилируйте:
iconutil -c icns "$OUT" -o MyIcon.icns— ключ-c icnsзадаёт выходной формат, путь к папке.iconsetобязан заканчиваться на.iconset. - Проверьте размеры циклом по
*.pngтем же шаблономsips -g pixelWidth -g pixelHeight, что в матрице iOS App Icon. - Архивируйте и
iconset, иICNSс строкой манифеста на файл для релизного тикета.
Для тяжёлых PNG-конвейеров вокруг иконок — крупные полотна, 4K-срезы — перенесите привычки очередей из пакетного экспорта 4K PNG на удалённом Mac M4. Автоматическую сверку слотов приложений с Contents.json можно дополнить сценарием из OpenClaw: валидация App Icon PNG.
Цифры для вставки в тикеты
- 10 PNG-файлов составляют стандартную сетку macOS
.iconsetиз таблицы выше. - 1024 × 1024 — верхний слот после компиляции (файл
icon_512x512@2x.png). - Одна политика встроенного профиля sRGB для иконки, UI-PNG и маркетинга снижает споры на аудитах бренда.
FAQ: углы, альфа и передача разработке
В: Запекать ли скругления macOS в PNG?
О: Для производственных иконок AppKit — нет: отдавайте полный квадрат; маску применяет система. Предварительно скруглённый растр часто даёт ореолы и расхождения с Dock. Маркетинговый превью с маской вынесите в отдельную ветку ассетов вне .iconset.
В: Прозрачные края после пакетного ресайза стали серыми — в чём причина?
О: Часто виноваты обработка premultiplied alpha и работа вне sRGB. Держите мастер в sRGB, уберите случайное полупрозрачное «подложечное» кольцо, проверьте композит на светлом и тёмном фоне рабочего стола; при необходимости пересмотрите экспорт из редактора (straight alpha, корректный flatten).
В: Что главное — ICNS или папка PNG?
О: Для ревью и диффов предпочтителен .iconset; ICNS пересобирайте при каждом изменении PNG. Правило зафиксируйте в README релиза, чтобы CI и дизайн не расходились.
В: Нужна ли прозрачность у иконки приложения в Finder?
О: Зависит от гайда продукта; типичный кейс — почти полностью непрозрачный квадрат. Полупрозрачные поля на краю часто читаются как грязь в миниатюрах; согласуйте исключения с разработкой до пакетной нарезки.
Кратко
Таблица размеров и чеклист sRGB — обязательные ворота приёмки; iconutil запускайте только после того, как выходы sips (или экспортёра) прошли геометрию и цвет. Держите квадратные мастера без запечённых радиусов macOS. Вынесите циклы нарезки, компиляции и заполнения манифеста на выделенный удалённый Mac — ночные партии и повторные прогоны перестанут блокировать основную рабочую станцию и останутся воспроизводимыми для всей команды.
Дальнейшие шаги
Откройте главную MacPng, сравните пакеты аренды и тарифы и узлы для стабильного узла на Apple Silicon, затем загляните в центр помощи за шаблонами SSH/VNC. Продолжайте в списке технических идей и на вкладке Mac M4 — там же гайды по PNG и дизайн-доставке рядом с этой матрицей иконок.
Пакетный ICNS и PNG-iconset на удалённом Mac
Закрепите версии macOS и CLI, гоняйте повторяемые задания sips и iconutil, прикладывайте манифест размеров к каждому релизу — удобно, когда десктопные и мобильные иконки прилетают в одну неделю.