증상 추적용 건강 앱을 안드로이드 스토어에 올렸다가 거부됐습니다. 사유가 둘이었고, 그중 하나가 **"사용자 데이터 정책의 개인정보처리방침 항목: 유효하지 않은 방침"**이었습니다.
라이브 방침 URL을 열어서 처음부터 읽어 봤습니다. 다른 앱의 문서였습니다.
당신은 마지막으로 자기 앱의 방침 문서를 읽은 게 언제입니까? 링크가 열리는지 확인한 게 아니라요.
무엇이 적혀 있었나
- "대화 내용: 사용자가 입력한 문자 메시지와 메모" — 대화형 AI 앱 서술입니다
- "AI 동반자의 대화와 응답을 제공하기 위해"
- 서드파티 표에 대화 모델 제공사
- "수집하지 않음: … 건강 데이터 …"
- 결제·로그인 서술이 애플 전용, 안드로이드 언급 0건
마지막에서 두 번째 줄이 문제입니다. 이 앱의 존재 이유가 건강 데이터입니다. 실제 앱은 35개 증상 카탈로그를 저장하고, 건강 플랫폼에서 수면과 심박을 읽고, 그걸 서버에 보냅니다.
문서가 다른 앱 것이면 "수집하지 않는다"가 거짓 진술이 되고, 그 자체가 위반입니다. 심사자는 방침과 앱을 대조하는 사람이라 이건 못 지나갑니다. 전에는 낯선 사람이 제 방침이 거짓이라고 알려 준 적이 있었습니다 — 그때도 제가 찾은 게 아니었습니다.
같은 기회에 스토어 문구도 대조했습니다
짧은 설명이 없는 기능을 표방하고 있었습니다. 다섯 개 로케일에서 특정 기록 기능을 내세웠는데, 코드에 그 필드가 0건이었습니다.
방침과 리스팅은 같은 습관에서 나옵니다 — 앱마다 새로 쓰지 않고 이전 앱 문서를 틀로 쓰는 습관입니다.
당신이라면?
심사 전에 방침을 검증해야 합니다. 무엇을 대조하겠습니까?
- 링크가 열리는지 — 제가 하던 것. 200이면 통과라고 생각했다.
- 문서를 읽어보기 — 읽으면 이번 건은 잡힌다. 다만 다음 앱에서 또 잡아야 한다.
- 코드와 기계적으로 대조하기 — 매니페스트 권한과 실제 저장 필드를 방침 문구에 붙여 본다.
세 번째가 답입니다. 최소 점검 네 가지로 정리했습니다.
- 매니페스트 권한 ↔ 방침에 그 데이터가 나오는가 (건강 권한은 필수)
- 앱이 실제로 저장·전송하는 필드 ↔ 방침의 "수집" 목록
- 방침의 "수집하지 않음" 목록에 앱이 실제로 쓰는 것이 들어 있지 않은가 ← 가장 위험
- 플랫폼 서술이 맞는가 — 애플 전용 문구가 안드로이드 리스팅에 붙어 있지 않은가
3번이 제일 위험합니다. 빠뜨린 항목은 "불완전"이지만, 잘못 부정한 항목은 거짓 진술입니다.
자가진단 세 줄
- 방침 문서를 이전 앱에서 복사해 왔습니까? 그렇다면 "수집하지 않음" 목록을 먼저 보십시오. 거기가 거짓 진술이 생기는 자리입니다.
- 방침 검증이 "링크 200"입니까? 그건 문서가 존재한다는 뜻이고, 그 문서가 이 앱을 설명한다는 뜻은 아닙니다.
- 스토어 짧은 설명의 기능이 코드에 있습니까? 로케일별로 다르게 적혀 있으면 하나씩 확인해야 합니다.
솔직한 부분
이건 심사자가 찾아 준 결함입니다. 제가 찾은 게 아닙니다. 앱을 만들고 스토어에 올리는 사이에 방침을 한 번도 읽지 않았습니다.
왜 이렇게 됐는지는 명확합니다. 방침 페이지를 앱마다 만들면서 이전 앱 문서를 틀로 썼고, 갈아 끼워야 할 부분을 갈아 끼우지 않았습니다.
그리고 같은 방식으로 만든 다른 앱 방침이 몇 개 더 있는지는 이 세션에서 전수 확인하지 않았습니다. 하나를 발견하면 나머지를 세어야 하는데, 아직 안 셌습니다. 그 숫자를 모르는 상태로 이 글을 씁니다.