웹 앱 매니페스트 검사기는 사이트를 설치했을 때의 모습을 브라우저에 알려 주는 JSON 파일, 즉 이름, 시작 URL, 표시 모드, 아이콘을 읽습니다. JSON을 붙여 넣거나 manifest.json·.webmanifest 파일을 편집기에 끌어다 놓으면 크로미움 계열 브라우저가 적용하는 기준으로 설치 가능 여부를 판정하고, 모든 지적 사항을 오류·경고·팁으로 나열하며, 매니페스트에 적힌 색과 이름으로 홈 화면 아이콘과 스플래시 화면을 그려 주고, 2칸 들여쓰기로 정리한 JSON도 돌려줍니다.
사이트를 프로그레시브 웹 앱(PWA)으로 만들면서 매니페스트를 직접 쓰거나 생성하고, DevTools를 열기 전에 빠르게 점검하려는 사람을 위한 도구입니다. 마지막 쉼표, 틀린 display 값, start_url이어야 할 startUrl, 빠진 512픽셀 아이콘이 설치 버튼이 안 뜨는 증상으로 나타나기 전에 바로 잡아 줍니다.
파일은 브라우저 안에서만 읽고 검사하며 업로드되지 않습니다. 도구는 JSON 텍스트만 검사하고 아이콘 파일을 불러오거나 start_url이 열리는지, HTTPS나 서비스 워커를 확인하지 않습니다. 그래서 판정은 매니페스트 자체로 알 수 있는 범위에 한정됩니다.
사용 방법
매니페스트 불러오기
JSON을 편집기에 붙여 넣거나
.json·.webmanifest파일(5 MiB까지)을 끌어다 놓거나 예제로 시작합니다.판정 확인
입력하는 즉시 JSON을 파싱합니다. 배너에 설치 가능 또는 아직 설치할 수 없음이 표시되고, 설치 조건 7가지가 통과·미통과로 나열됩니다.
개수 확인
타일에 매니페스트가 선언한 멤버 수와 아이콘 수, 오류·경고 수가 나옵니다.
지적 사항 처리
항목마다 멤버(예:
icons[1].src), 심각도(오류·경고·팁), 고치는 방법을 담은 메시지가 나옵니다. 오류가 먼저 나오며,startUrl처럼 철자가 틀린 멤버에는 "start_url을 말씀하신 건가요?" 힌트가 붙습니다.정리된 JSON 복사·내려받기
들여쓰기가 정리된 매니페스트를 복사하거나
manifest.webmanifest로 내려받습니다.
작동 원리
웹 애플리케이션 매니페스트란
웹 애플리케이션 매니페스트는 W3C 명세로, 보통 <link rel="manifest" href="/manifest.webmanifest">로 페이지에 연결하고 application/manifest+json으로 제공하는 JSON 문서입니다. 브라우저는 이것을 읽어 설치된 앱의 이름, 아이콘, 시작 URL, 창 스타일을 정합니다.
가장 자주 쓰는 멤버는 name(전체 이름), short_name(홈 화면 라벨), start_url, display, icons, theme_color, background_color, scope입니다.
이 도구가 실행하는 검사
심각도는 코드가 실제로 적용하는 기준을 따릅니다. 오류는 설치를 막거나 파일을 깨뜨리는 문제, 경고는 실수일 가능성이 큰 것이나 빠진 마무리, 팁은 선택적 개선입니다.
| 필드 | 규칙 | 심각도 |
|---|---|---|
name | 비어 있지 않은 문자열이어야 함 | 오류 |
short_name | 비어 있지 않은 문자열이 권장됨 | 경고 |
start_url | 비어 있지 않은 문자열이어야 함 | 오류 |
display | 있다면 browser, minimal-ui, standalone, fullscreen, window-controls-overlay, borderless, tabbed 중 하나 | 오류 |
icons | 비어 있지 않은 배열이어야 함 | 오류 |
icons[n] | 각 항목은 객체여야 함 | 오류 |
icons[n].src | 비어 있지 않은 문자열이어야 함 | 오류 |
icons[n].sizes | 비어 있지 않은 문자열이 권장됨 (예: 192x192, any) | 경고 |
설치 가능 여부는 JSON 너머의 문제
브라우저가 설치를 제안하는지는 브라우저 자체 기준에 달려 있고, 이 기준은 시간이 지나며 바뀌었고 브라우저마다 다릅니다. 크로미움 계열에서는 대체로 이름, 시작 URL, 알맞은 표시 모드(standalone, fullscreen, minimal-ui), 192픽셀과 512픽셀 이미지를 포함한 아이콘이 매니페스트에 필요하고 페이지는 HTTPS로 제공되어야 합니다. 이 도구는 아이콘에 선언된 크기와 용도를 검사하지만 이미지 파일을 내려받아 확인하지는 않으므로 여기서 통과한 매니페스트도 브라우저 검사에서는 실패할 수 있습니다. 브라우저 개발자 도구의 Application 패널에서 최종 확인하세요.
실제 예시
{"name":"Example shop","short_name":"Shop","start_url":"/","display":"standalone","icons":[{"src":"/icon-192.png","sizes":"192x192","type":"image/png"},{"src":"/icon-512.png","sizes":"512x512","type":"image/png"}]}설치 가능. 멤버 5, 아이콘 2, 오류 0, 경고 0
팁: id, theme_color, background_color, maskable 아이콘, screenshots 추가설치 조건 7가지를 모두 통과합니다. 팁은 선택 사항이며, 정리된 출력은 같은 객체를 2칸 들여쓰기한 것입니다.
{"short_name":"Shop","display":"app","icons":[{"src":"/a.png"},"x",{"sizes":"1x1"}]}아직 설치할 수 없음. 오류 4, 경고 2
경고 name: name이 없음, short_name이 대신하지만 name을 권장
오류 start_url: start_url이 없음
오류 display: "app"은 표시 모드가 아님
경고 icons[0].sizes: sizes를 선언하세요
오류 icons[1]: 각 아이콘은 객체여야 함
오류 icons[2].src: 각 아이콘에 src가 필요함
미통과 조건: start_url, display, 192 아이콘, 512 아이콘app은 표시 모드가 아닙니다. 올바른 이름은 위 표에 있습니다. 크기를 선언한 쓸 만한 아이콘이 없어서 아이콘 조건이 통과하지 못합니다.
{"name":"A"}아직 설치할 수 없음. 멤버 1, 아이콘 0, 오류 2, 경고 2
경고 short_name: short_name 추가 권장
오류 start_url: start_url이 없음
경고 display: 없어서 일반 탭으로 열림
오류 icons: icons 배열을 추가하세요이름만 있어도 파싱은 되지만 설치 조건 7가지 중 4가지를 통과하지 못합니다.
[1]매니페스트의 최상위는 JSON 객체 { … }여야 합니다.마지막 쉼표 같은 문법 오류는 대신 JSON 엔진의 오류 메시지가 표시되며, 이 메시지는 브라우저마다 다릅니다.
자주 하는 실수
"오류 없음"을 모든 곳에서 설치 가능으로 착각
판정은 크로미움의 매니페스트 기준을 따르며 HTTPS,
<link rel="manifest">태그, 서비스 워커는 볼 수 없습니다. 사파리와 파이어폭스는 다른 규칙을 쓰므로 대상 브라우저에서 직접 테스트하세요.아이콘 상대 경로는 매니페스트 URL 기준
실제 브라우저에서
src와start_url은 페이지가 아니라 매니페스트 파일 기준으로 해석됩니다./app/manifest.json에서src: icon.png는/app/icon.png를 가리킵니다. 이 도구는 경로를 해석하거나 요청하지 않습니다.512픽셀 아이콘 누락
작은 아이콘만 선언하는 것이 설치 안내가 뜨지 않는 가장 흔한 이유입니다. 도구는 선언된
sizes를 읽어 192·512 항목이 없으면 지적하지만, 파일이 실제로 그 크기인지는 알 수 없습니다.서버의 잘못된 MIME 타입
파일은
application/manifest+json(최소한 JSON 타입)으로 제공해야 합니다. 대체 라우트가 HTML을 돌려주면 여기서 JSON이 유효해도 브라우저에서는 불러오지 못합니다.주석과 마지막 쉼표
매니페스트는 순수 JSON입니다. 주석, 마지막 쉼표, 작은따옴표는 문법 오류가 되며, 메시지는 브라우저 엔진마다 다릅니다.
자주 묻는 질문
name과 short_name 중 무엇이 필수인가요?
브라우저는 둘 중 하나 이상을 필요로 합니다. 이 도구는 둘 다 없으면 오류, 하나만 있으면 경고로 표시합니다. 둘 다 쓰면 홈 화면 라벨이 잘리는 것을 피할 수 있고, short_name은 12자 안팎이 좋습니다.
display에는 어떤 값을 쓸 수 있나요?
이 도구는 fullscreen, standalone, minimal-ui, browser, window-controls-overlay, borderless, tabbed를 받아들입니다. 앱 같은 창에는 보통 standalone을 쓰고, browser는 일반 탭으로 열려 설치 가능하게 만들지 않습니다.
아이콘은 어떤 크기가 필요한가요?
크로미움 계열 브라우저는 최소 192x192와 512x512 아이콘을 기대합니다. 이 도구는 선언된 sizes(any인 SVG는 둘 다 충족)를 확인해 빠진 크기를 지적하고 maskable 아이콘을 권합니다. 이미지 파일을 열어 보지는 않으니 실제 크기는 직접 확인하세요.
서비스 워커도 검사하나요?
아니요. 매니페스트 JSON만 검사합니다. 설치에 서비스 워커가 필요한지는 브라우저마다 다르므로 대상 브라우저에서 직접 테스트하세요.
.webmanifest 파일도 검증할 수 있나요?
네. 5 MiB까지의 .json·.webmanifest 파일을 편집기에 끌어다 놓거나 내용을 붙여 넣으세요.
매니페스트가 업로드되나요?
아니요. 파일은 브라우저 안에서만 읽고 서버로 전송하지 않습니다.
SVG 아이콘인데 sizes 경고가 뜨는 이유는요?
SVG에는 sizes를 any로 선언하세요. type을 image/svg+xml로 함께 지정하면 sizes가 없어도 경고 없이 받아들입니다.
더 깊이 읽기
마지막 업데이트:
