이미지 하나로 안드로이드 mipmap 전 해상도, 적응형 아이콘, Play 스토어 512px, iOS AppIcon, 파비콘까지 만들어 ZIP으로 받습니다. 파일이 서버로 전송되지 않고 브라우저 안에서만 처리됩니다.
아이콘이 꽉 차 보이면 여백을 주세요. 적응형 아이콘에는 세이프존 여백이 따로 자동 적용되니 여기서 또 줄 필요 없습니다.
iOS App Store 아이콘(1024px)은 투명도를 허용하지 않습니다. 원본에 투명 영역이 있으면 배경을 켜세요.
1024px 정사각 PNG 한 장으로 안드로이드·iOS·파비콘 규격 아이콘을 폴더 구조가 갖춰진 ZIP으로 만듭니다. 적응형 아이콘의 세이프존 비율은 자동으로 적용됩니다. 출시 전 아이콘도 서버 전송 없이 브라우저 안에서만 처리되어 유출 걱정이 없습니다.
1024×1024 크기의 정사각형 PNG를 준비해 위에 올리세요. 원본이 클수록 축소 품질이 좋아지므로, 가능하면 벡터에서 1024px로 내보낸 파일을 쓰시는 게 가장 깔끔합니다. 생성할 규격을 고르고 내려받기를 누르면 폴더 구조가 갖춰진 ZIP이 만들어집니다. 안드로이드 파일은 압축을 풀어 app/src/main/res/ 아래에 그대로 덮어쓰면 되고, iOS는 AppIcon.appiconset 폴더를 통째로 교체하면 됩니다. Xcode 14 이상을 쓰신다면 iOS 쪽은 1024px 파일 하나만 꺼내 쓰셔도 됩니다.
이 도구는 이미지를 서버로 보내지 않습니다. 브라우저의 Canvas API로 처리하기 때문에 인터넷 연결이 끊겨도 동작하고, 출시 전 아이콘이 외부로 유출될 걱정이 없습니다.
안드로이드는 화면 밀도별로 아이콘을 따로 넣습니다. 기준은 48dp이고 밀도 배율에 따라 실제 픽셀 크기가 달라집니다.
| 폴더 | 배율 | 런처 아이콘 | 적응형 레이어 |
|---|---|---|---|
mipmap-mdpi | 1.0× | 48px | 108px |
mipmap-hdpi | 1.5× | 72px | 162px |
mipmap-xhdpi | 2.0× | 96px | 216px |
mipmap-xxhdpi | 3.0× | 144px | 324px |
mipmap-xxxhdpi | 4.0× | 192px | 432px |
| Play 스토어 등록정보 | — | 512px | — |
안드로이드 8.0부터는 아이콘 모양을 앱이 아니라 런처가 정합니다. 기기와 런처에 따라 원형, 스퀘어클, 둥근 사각형, 물방울 등으로 잘리죠. 여기서 숫자가 세 단계로 나뉩니다.
즉 108dp 중 가장자리 각 변 18dp는 잘려나갈 것을 전제로 배경만 채워두는 여유분입니다. 이 여백은 홈 화면을 넘길 때 전경과 배경이 서로 다르게 움직이는 시차(parallax) 효과에도 쓰입니다. 구글은 로고 자체를 48~66dp 사이로 두라고 권합니다.
이걸 모르고 108px 캔버스에 로고를 꽉 채웠다가, 손에 든 기기에서는 멀쩡한데 다른 기기에서 가장자리가 잘려 돌아오는 경우가 흔합니다. 이 도구는 적응형 전경 레이어에 세이프존 비율(66/108 ≈ 61%)을 자동으로 적용하므로 따로 계산하지 않으셔도 됩니다.
ZIP에 아래 파일이 mipmap-anydpi-v26/ic_launcher.xml로 함께 들어갑니다. 배경을 단색으로 쓰시려면 colors.xml에 색을 정의하고 @color/ic_launcher_background로 바꿔 쓰셔도 됩니다.
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@mipmap/ic_launcher_background" />
<foreground android:drawable="@mipmap/ic_launcher_foreground" />
</adaptive-icon>
안드로이드 13부터 테마 아이콘이 생겼습니다. 사용자가 이 기능을 켜면 런처가 배경화면 색조에 맞춰 아이콘을 물들입니다. 이때 필요한 것이 세 번째 레이어인 monochrome으로, 원래 아이콘을 색만 바꾼 것이 아니라 단색 실루엣이어야 합니다.
사진이나 여러 색이 섞인 원본을 실루엣 한 장으로 자동 변환하는 건 사실상 불가능해서, 이 도구는 monochrome 레이어를 만들지 않습니다. 실루엣은 직접 그려서 drawable로 넣고 XML에 한 줄만 추가하시면 됩니다.
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@mipmap/ic_launcher_background" />
<foreground android:drawable="@mipmap/ic_launcher_foreground" />
<monochrome android:drawable="@drawable/ic_launcher_monochrome" />
</adaptive-icon>
넣지 않아도 앱이 깨지지는 않습니다. 테마 아이콘을 켠 화면에서 혼자 원래 색을 유지할 뿐입니다.
대개는 아닙니다. Xcode 14부터 에셋 카탈로그의 AppIcon에 Single Size 슬롯이 생겼습니다. 1024×1024 한 장만 넣어두면 나머지 크기는 빌드할 때 Xcode가 알아서 만듭니다. 이 방식이라면 ZIP에서 1024px 파일 하나만 꺼내 쓰고 나머지는 무시하셔도 됩니다.
13종 전체가 필요한 경우는 이렇습니다. 에셋 카탈로그를 All Sizes로 두고 쓸 때, 구버전 Xcode나 낮은 배포 타깃을 유지할 때, 그리고 React Native·Flutter·Capacitor·Unity 같은 크로스플랫폼 툴체인이 개별 PNG와 Contents.json이 디스크에 있는 것을 전제할 때입니다. 이 도구가 만드는 것이 바로 그 형태라서, 폴더째 Assets.xcassets에 넣으면 그대로 동작합니다.
iOS 26에서 레이어드 Liquid Glass 아이콘과 애플의 Icon Composer 앱이 도입됐습니다. Icon Composer는 라이트·다크·틴티드 변형을 담은 .icon 파일을 만듭니다. 다만 이건 선택 사항입니다. 평평한 1024px PNG도 그대로 동작하고, 시스템이 그 위에 자체 하이라이트와 마스크를 입혀 줍니다. 레이어드 표현까지 직접 다듬고 싶다면 그 작업만 Icon Composer에서 하시고, 평평한 세트와 안드로이드·웹 쪽은 이 도구로 처리하시면 됩니다.
App Store 마케팅 아이콘은 완전히 불투명해야 합니다. 알파 채널이 있으면 업로드 단계에서 거부되니, 원본에 투명 영역이 있다면 위의 배경 채우기를 켜고 브랜드 색을 지정하세요.
등록정보용 아이콘은 512×512, 32비트 PNG, 용량 1024KB 이하여야 합니다. 알파 채널은 허용됩니다. 대신 모서리를 직접 깎거나 그림자를 미리 넣으면 안 됩니다. Play가 자체 마스크와 그림자를 함께 입히기 때문에, 미리 넣어두면 두 번 겹쳐서 어색해집니다. 이 도구의 모서리 옵션은 꺼둔 채로 쓰세요.
적응형 아이콘 세이프존 때문에 시각적으로 작아 보이는 건 정상입니다. 그래도 작다면 로고 자체를 키워서 원본을 다시 내보내세요. 여백 값은 음수로 줄 수 없습니다.
App Store용 1024px 아이콘에 알파 채널이 있으면 심사에서 거부되거나 검은 배경으로 합성됩니다. 위의 배경 채우기를 켜고 브랜드 색을 지정하세요.
32px나 48px로 줄이면 세밀한 그림은 남지 않습니다. 작은 크기에서 알아보기 쉬운 아이콘은 큼직한 도형 몇 개로 이루어져 있고, 가는 선·그라데이션·작은 글자는 가장 먼저 사라집니다. 원본이 1024px보다 작다면 더 크게 다시 내보낸 뒤 생성하세요.