먼저 숫자로 보면: 평균적인 등록 정보에는
- 스토어마다 4~5가지 다른 픽셀 크기의 스크린샷
- 8가지 이상의 크기로 렌더링된 아이콘 하나
- 연락처나 위치 정보에 관련된 항목이면 12개를 넘어갈 수 있는 권한 목록
- 출시 첫날 심사자가 앱을 반려할지 결정하는, 수십 개의 예/아니오 분기가 있는 개인정보 질문지 하나
여기에 세 개 스토어 — Play, App Store, 확장 프로그램을 배포한다면 Firefox 애드온 등록 — 를 곱하면, 이미 완성한 앱을 위해 스크린샷을 자르고 양식을 채우는 데 사흘 오후 시간이 걸린다는 계산이 나온다. 이건 지루한 숫자다.
스토어에 제출되는 모든 빌드는 등록 키트를 자동으로 생성받으며, 이는 개발자가 앱이 하려고 의도한 동작과 컴파일된 바이너리가 실제로 하는 동작 사이의 그 특정한 간극을 메우도록 설계되었다.
키트의 나머지 부분은 쉬운 편이다
- 스크린샷은 목업이 아니라 실제로 실행 중인 앱에서 가져오며 — 구성하고, 각 스토어 규격에 맞게 크기를 조정하고, 형식이 요구하는 경우 패널에 캡션을 추가한다.
- 아이콘은 각 스토어가 요구하는 전체 크기 세트로 렌더링되며, 해당 스토어가 추가로 요구하는 프로모션 이미지나 기능 그래픽도 함께 생성된다.
- 등록 문구 — 제목, 짧은 설명, 전체 설명 — 은 앱이 실제로 하는 일을 바탕으로 작성된다. 형용사만 잔뜩 쌓아놓은 App Store 등록 정보를 충분히 읽어본 사람이라면 이게 당연한 얘기가 아니라는 걸 안다.
- 권한 사유는 권한별로 각 스토어가 요구하는 형식에 맞춰 생성된다.
이 중 어느 것도 딱히 어려운 건 아니다. 다만 사람들이 건너뛰거나, 대충 빠르게 잘못 처리하게 될 만큼 귀찮은 일일 뿐이다.
엄격하게 처리되는 부분: 개인정보 질문지
선의로도 쉽게 틀릴 수 있는 부분이 여기 있다. 앱을 만들고, 데이터를 수집하지 않는다고 꽤 확신한 채 질문지에서 "데이터 수집 안 함"을 체크하고 넘어간다. 그런데 3주 전에 크래시 리포팅 SDK를 넣어놓고 잊어버렸거나, 의존성 업데이트를 통해 분석(analytics) 호출이 슬쩍 들어와 있을 수 있다. 이제 등록 정보는 한 가지를 말하고 바이너리는 다른 일을 한다 — 이는 사용자를 상대로 한 의도치 않은 거짓이거나 심사에서 빠르게 반려당하는 지름길이며, 둘 다 좋은 결과는 아니다.
그래서 키트는 당신의 말을 그대로 받아들이지 않는다. 답변하기 전에 앱의 실제 소스를 스캔한다: "데이터를 수집하지 않음"이라는 주장은 코드가 네트워크 호출을 하지 않고 분석 도구를 포함하지 않을 때에만 나온다. 앱이 실제로 외부로 데이터를 보낸다면, 그 사실이 좋게 보이든 아니든 정확하게 선언에 반영된다. 등록 정보가 자신에게 유리하게 포장되기보다는 정직한 쪽을 선택한다. 그리고 우연이 아니게, 이 방식이 심사를 통과하는 버전이기도 하다. 심사자가 확인하는 것과 스캔이 확인하는 것이 동일하기 때문이다.
제출만 한 게 아니라, 제대로 채운 것
스토어가 API를 제공하는 경우, 키트는 사람 개입 없이 리스팅을 바로 게시합니다. 스토어가 자체 콘솔 사용을 고집하는 경우, 키트가 양식 작성을 자동화하고 스토어가 사람의 클릭을 요구하는 몇 번의 클릭만 남겨둡니다.
| 스토어 | 키트가 배포하는 방식 |
|---|---|
| Firefox (애드온) | 완전 자동화, 사람 개입 없음 — 이미지, 문구, 신고 사항이 API를 통해 게시됨 |
| Google Play | 양식 작성 자동화; 최종 스토어 확인만 직접 클릭 |
| Chrome Web Store | 양식 작성 자동화; 최종 스토어 확인만 직접 클릭 |
스토어별 상세 내역은 프롬프트에서 스토어까지에서 확인하세요.



