iOS 앱 아이콘은 출시 직전에 픽셀 오류·1024 마케팅 알파·수동 둥근 PNG가 Xcode 마스크와 충돌하며 터집니다. 디자이너·프론트 소재 담당이 AppIcon.appiconset을 넘길 때 쓰는 결정 매트릭스로, 역할→pt→px 표, Contents.json, sRGB·알파·슈퍼타원 마스크·명명, M 시리즈 일괄 검증을 한 문서에 모았습니다. 야간·CI 검사는 원격 Mac에 고정하면 재현성이 좋아집니다.
① 크기·역할 대조표(PNG 픽셀 목표)
표의 정확한 픽셀·정사각 PNG를 납품하세요. Contents.json 매핑이 있으므로 카탈로그 스케일로 마스터 오류를 만회하지 마세요. 1024 설계 마스터에서 파생하는 흐름이 일반적이며, Apple Silicon에서는 다중 리사이즈 배치가 빠릅니다.
| 플랫폼·역할 | 포인트(pt) | 스케일 | PNG(px) | 파일명 토큰 예 |
|---|---|---|---|---|
| iPhone 알림 | 20 | 2× / 3× | 40×40 / 60×60 | [email protected], @3x |
| iPhone 설정 | 29 | 2× / 3× | 58×58 / 87×87 | [email protected], @3x |
| iPhone 스포트라이트 | 40 | 2× / 3× | 80×80 / 120×120 | [email protected], @3x |
| iPhone 앱 | 60 | 2× / 3× | 120×120 / 180×180 | [email protected], @3x |
| iPad 알림 | 20 | 1× / 2× | 20×20 / 40×40 | [email protected], @2x |
| iPad 설정 | 29 | 1× / 2× | 29×29 / 58×58 | [email protected], @2x |
| iPad 스포트라이트 | 40 | 1× / 2× | 40×40 / 80×80 | [email protected], @2x |
| iPad 앱 | 76 | 1× / 2× | 76×76 / 152×152 | [email protected], @2x |
| iPad Pro 앱 | 83.5 | 2× | 167×167 | [email protected] |
| App Store·마케팅 | 1024 | 1× | 1024×1024 | [email protected] 또는 생성기와 맞춘 [email protected] |
아이콘 배치의 색 변환은 마케팅 정지 화면 등 다른 PNG 정책과 맞추세요. Mac PNG 색 관리: sRGB·Display P3 체크리스트와 함께 두면 배치 간 색이 어긋나지 않습니다.
② Contents.json 계약
AppIcon.appiconset/Contents.json은 디자인과 Xcode 사이의 납품 계약입니다. images 배열의 각 항목은 idiom(iphone, ipad, ios-marketing), size(예: "60x60"), scale("1x"·"2x"·"3x"), filename을 선언해야 합니다. 마케팅 1024 슬롯은 idiom: "ios-marketing", size: "1024x1024", scale: "1x" 조합이 일반적입니다.
- 단일 진실 공급원: PNG 반영 후 원격 Mac에서
plutil -lint Contents.json으로 쉼표·오타를 CI 전에 차단합니다. - 고아 파일 없음: 폴더의 모든 PNG는 JSON에 참조되고, 모든
filename은 디스크에 존재해야 합니다. - 버전 고정: JSON을 PNG와 함께 커밋해 “어떤 카탈로그 레이아웃인가”를 diff로 추적합니다.
③ 슈퍼타원 마스크·알파·정사각 납품
iOS는 슈퍼타원 마스크를 시스템이 씌웁니다. 프로덕션 아이콘은 정사각 납품(예외는 문서화)·핵심 그래픽은 안전 영역에 두세요.
1024 마케팅 아이콘은 투명(알파) 금지에 가깝습니다. 작은 슬롯도 기본 불투명으로 맞추고, 일괄 알파 검사는 OpenClaw PNG QC: 원격 Mac 일괄 검증과 연계하세요.
④ 실행 가능한 sRGB 수출 파라미터
Figma·Sketch·Affinity·Photoshop에서 아래를 통일하면 파생 파일끼리 비교 가능합니다.
| 항목 | 권장값 | 비고 |
|---|---|---|
| 색 공간 | sRGB(추측 태그가 아니라 변환 후 수출) | 웹·UI PNG 슬라이스와 동일 프리셋을 공유합니다. |
| 비트 깊이 | 8비트 RGB(A) | 중간 16비트 작업 후 최종 다운스케일 시 8비트 PNG로 납품. |
| 리사이즈 커널 | 바이큐빅·란초스 등 도구 기본 “고품질” | 다운스케일 후 얇은 선은 필요 시 미세 샤프닝. |
| 1024 마스터 | 알파 없음·브랜드 배경 불투명 | ⑥절 스크립트로 검증합니다. |
⑤ 검수 체크리스트(디자인+프론트)
| 검사 | 방법 | 합격 기준 |
|---|---|---|
| 치수 | 자동화(sips -g pixelWidth -g pixelHeight 또는 ImageMagick identify) |
각 PNG가 표의 픽셀과 ±0 일치. |
| 정사각 캔버스 | 시각+스크립트 | 가로=세로. |
| 알파(마케팅) | identify -format '%[channels]' 등 |
1024×1024는 알파 없음(RGB만). |
| 알파(기타 슬롯) | 히스토그램·픽셀 샘플 | 사양 없으면 의도치 않은 투명·체커보드 없음. |
| 마스크 정책 | 디자인 리뷰 | 정사각 납품·프로덕션용 사전 둥근 비트맵 금지·핵심 요소 안전 영역. |
Contents.json |
plutil -lint+파일명 대조 |
유효 JSON·모든 filename 존재·미참조 PNG 없음. |
| sRGB 의도 | 미리보기 스팟+수출 프리셋 문서 | 팀 ICC 정책에 맞게 임베드 또는 명시 변환. |
| 명명 | CI 정규식 | Icon-App-<WxH>@<scale>.png 등 JSON과 동일 패턴 유지. |
⑥ M 시리즈·원격 Mac 일괄 검증
소량 PNG 루프는 가볍고, 반복 가능한 스크립트를 원격 Mac에 두면 야간·고정 macOS·CLI 버전으로 재현됩니다.
단계 A — 폴더 치수 스윕:
for f in *.png; do
echo -n "$f "
sips -g pixelWidth -g pixelHeight "$f" 2>/dev/null | paste -sd ' ' -
done
단계 B — 마케팅 아이콘 알파 플래그: [email protected](또는 1024 파일)에 ImageMagick identify -verbose로 알파 부재를 단언하고, rgba면 빌드 실패로 처리합니다.
단계 C — 매니페스트: icons_manifest.csv(path,w,h,bytes,has_alpha,colorIntent)를 티켓에 첨부합니다. 대량 드롭은 원격 Mac M4 4K PNG 일괄 수출 큐 규율과 병행하세요. 1024에서 파생 시 xargs -P 병렬도 M 시리즈에서 실무적으로 통합니다.
요약
픽셀 표·Contents.json·sRGB·1024 알파 금지를 계약으로 고정하고, 마스크는 디자인 리뷰·치수·JSON은 M 시리즈·원격 Mac 스크립트로 반복 검증하세요.
다음 단계: 아이콘·PNG QA용 원격 Mac
MacPng 홈에서 개요를 확인한 뒤 구매·대여와 요금·노드에서 원격 Mac을 추가하세요. 본업 워크스테이션을 막지 않고 아이콘 배치·PNG 검증·장시간 CLI를 돌리기에 맞습니다. 도움말의 SSH/VNC 온보딩을 참고하세요.