Files
BlockSeasons/docs/store/phase7-submission-guide.md
T
airkjw b79960c949 docs(store): host privacy policy + app-ads.txt on Firebase, fill submission URLs
Deployed privacy-policy.html and app-ads.txt to block-seasons.web.app
(gru.farm root is an external site builder, not the NAS, so app-ads.txt
could not live there). Updated phase7 guide with the live URLs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-14 21:55:21 +09:00

9.8 KiB
Raw Blame History

Phase 7 — 스토어 제출 가이드 (오너 셀프 진행용)

이 문서 하나만 위에서부터 따라가면 Google Play + Apple App Store 제출까지 끝납니다. 코드/빌드/카피/개인정보처리방침은 모두 준비돼 있습니다. 여기 적힌 답변·문구를 그대로 복붙하세요. 막히면 Claude에게 "이 단계 막혔어" 하고 화면을 보여주면 됩니다.

마지막 업데이트: 2026-06-14


지금까지 완료된 것

Google Play

  • 앱 생성: Block Seasons (com.airkjw.blockseasons)
  • AAB 업로드: 내부 테스트 트랙에 1 (1.0.0) 게시됨
  • 테스터 목록 설정 (0614 테스트)
  • 판매자(결제) 프로필 설정 완료
  • remove_ads 인앱상품 생성 + 활성 (173개 지역, "이전 버전과의 호환성" ✔)

Apple App Store

  • App ID com.airkjw.blockseasons 등록, App Store Connect에 앱 생성
  • remove_ads 비소모성 IAP 생성 + 가격 설정 (상태: 메타데이터 누락 → 아래 5단계에서 마무리)

공통 자산 (이미 만들어 둠)

  • 앱 아이콘 512px: docs/store/play_icon_512.png
  • 피처 그래픽 1024×500: docs/store/feature_graphic.png
  • 개인정보처리방침 호스팅 완료: https://block-seasons.web.app/privacy-policy.html
  • app-ads.txt 호스팅 완료: https://block-seasons.web.app/app-ads.txt
  • 스토어 카피 EN/KO: docs/store/store-listing.md
  • 스크린샷 (각 3장: 홈·플레이·점수전):
    • iOS 6.7"(1290×2796): docs/store/screenshots/ios/
    • Android 폰(1080×1920): docs/store/screenshots/android/
    • (시즌 여정 맵 컷은 추후 추가 예정 — 현재 3장으로 제출 충분)

0단계 — 먼저 해둘 3가지 (양 스토어 공통 전제)

0-1. 🔑 안드로이드 서명키 백업 (가장 중요, 분실 시 영구 업데이트 불가)

  • 파일 BlockSeasons/android/app/upload-keystore.jks2곳 이상(클라우드+외장 등)에 백업
  • 비밀번호 35f52bb88a79b4279d3acce7935c33c9 (alias upload)을 비밀번호 관리자에 저장
  • (Play 앱 서명을 쓰므로 이건 "업로드 키"지만 그래도 백업 필수)

0-2. 개인정보처리방침 + app-ads.txt 호스팅 — 완료 (Firebase Hosting)

두 파일을 이미 살아있는 Firebase Hosting(block-seasons.web.app)에 배포 완료. 아래 URL을 스토어 폼에 그대로 복붙하세요.

항목 스토어에 넣을 값
개인정보처리방침 URL https://block-seasons.web.app/privacy-policy.html
app-ads.txt https://block-seasons.web.app/app-ads.txt (live, text/plain ✔)
개발자 웹사이트 / 마케팅 URL https://block-seasons.web.app

⚠️ AdMob이 app-ads.txt를 인식하려면 스토어의 "웹사이트/마케팅 URL"을 반드시 https://block-seasons.web.app 적어야 합니다(여기 루트의 app-ads.txt를 크롤링). web.app은 그 자체가 독립 루트 도메인이라 인식에 문제없음. 참고: gru.farm 루트는 NAS가 아니라 외부 사이트빌더(아임웹)라서 app-ads.txt를 못 올림 → Firebase로 호스팅함. 재배포 방법(파일 수정 시): docs/store/의 원본을 deploy/로 복사 후 firebase deploy --only hosting --project block-seasons.

0-3. 결제 계약 확인

  • Google: 판매자 프로필 완료됨 ✔ (이미 했음)
  • Apple: 아래 App Store 5-④ 유료 앱 계약을 완료해야 IAP 판매·심사 가능 (세금/뱅킹 — 본인이 입력)

A. GOOGLE PLAY — 남은 순서

위치: Play Console → Block Seasons → 대시보드 → "앱 설정" 항목을 위에서부터 채우면 됩니다. (내부 테스트 빌드는 이미 올라가 있으니, 아래는 프로덕션 출시에 필요한 정책/리스팅 작성입니다.)

A-1. 앱 액세스 권한

"모든 기능을 제한 없이 사용할 수 있습니다" 선택 (로그인 없음).

A-2. 광고

"예, 앱에 광고가 있습니다."

A-3. 콘텐츠 등급 (설문)

  • 이메일 입력 → 카테고리 "게임"
  • 폭력/성적/언어/약물/도박 등 전부 아니요 (단순 블록 퍼즐)
  • 결과: 전체이용가 / Everyone / PEGI 3 예상

A-4. 타겟층 및 콘텐츠

  • 대상 연령: 만 13세 이상(1315, 1617, 18세 이상) 선택 권장 — 만 13세 미만은 선택하지 말 것 (아동 대상이 되면 'Designed for Families' 정책 + 아동 개인정보 의무가 생겨 광고 단가에 불리)
  • "앱이 아동의 관심을 끌도록 디자인되었나요?" → 아니요

A-5. 데이터 보안 (Data safety) — 아래 값 그대로

  • 데이터 수집·공유:
  • 기기 또는 기타 ID (광고 ID): 수집함 · 목적 광고 또는 마케팅 · Google과 공유함 · 사용자 연결 안 함
  • 앱 활동 / 앱 상호작용: 수집함 · 목적 분석 · 공유 안 함 · 사용자 연결 안 함
  • 전송 중 암호화:
  • 사용자가 데이터 삭제 요청 가능: 개인정보처리방침 문의 이메일 기재로 충족
  • ⚠️ "아동 대상 앱" → 아니요

A-6. 기타 선언

  • 정부 앱 / 금융 기능 / 건강 앱 → 전부 아니요
  • 뉴스 앱 → 아니요. 콘텐츠 가이드라인·미국 수출법 → 동의

A-7. 메인 스토어 등록정보

docs/store/store-listing.md에서 복붙:

  • 앱 이름: Block Seasons
  • 간단한 설명 (≤80): KO 블록을 놓아 줄을 지우고, 몇 주마다 새 테마 시즌을 즐기세요. 광고 강요 없는 편안한 퍼즐.
  • 자세한 설명 (≤4000): store-listing.md의 KO(또는 EN) 본문
  • 앱 아이콘 (512×512): docs/store/play_icon_512.png
  • 그래픽 이미지 (1024×500): docs/store/feature_graphic.png
  • 휴대전화 스크린샷 (최소 2장): docs/store/screenshots/android/ (3장)
  • 카테고리: 게임 → 퍼즐 · 태그: 퍼즐/캐주얼
  • 개인정보처리방침 URL: https://block-seasons.web.app/privacy-policy.html
  • 웹사이트(선택): https://block-seasons.web.app ← app-ads.txt 인식용으로 이 주소 권장
  • 연락처 이메일: airkjw@gmail.com

A-8. 프로덕션 출시

  1. 테스트 및 출시 → 프로덕션 → 새 버전 만들기
  2. 내부 테스트의 빌드를 **"라이브러리에서 추가"**로 가져오거나 AAB 재업로드(같은 app-release.aab)
  3. 출시명/노트 입력 → 검토 → 출시 시작(심사 제출)
  4. ⚠️ 신규 개인 개발자 계정은 "비공개 테스트 20명 × 14일" 후에야 프로덕션 가능 규정이 있습니다.
    • 너는 이미 출시된 앱(복지앱)이 있어 해당 없을 가능성이 높음. 프로덕션에서 막히면 알려줘 — 비공개 테스트로 우회 안내할게.

A-9. (출시 후) 샌드박스 결제 테스트

  • 설정 → 라이선스 테스트에 본인 Google 계정 추가 → 내부 테스트 앱에서 remove_ads 구매가 실제 청구 없이 테스트됨.

B. APPLE APP STORE — 남은 순서

위치: App Store Connect → Block Seasons

B-1. 빌드 업로드 (Xcode 권장 — CLI는 경로 공백 이슈 회피)

  1. Xcode로 ios/Runner.xcworkspace 열기
  2. 상단 기기 선택을 "Any iOS Device (arm64)"
  3. 메뉴 Product ▸ Archive (서명은 Xcode 자동 서명)
  4. Organizer 창 → Distribute App ▸ App Store Connect ▸ Upload
  5. 처리에 수십 분 → App Store Connect → TestFlight에 빌드가 나타남

Claude가 대신 IPA를 만들기 어려운 이유: iOS 서명은 너의 Apple 인증서가 필요해서 Xcode에서 해야 안전함. 막히면 단계별로 안내할게.

B-2. 앱 정보 / 버전 정보

  • 카테고리: 게임 → 퍼즐, 연령 등급 설문 → 4+
  • 부제(≤30): KO 시즌마다 새로워지는 블록 퍼즐
  • 프로모션 텍스트·설명·키워드: docs/store/store-listing.md에서 복붙
  • 개인정보처리방침 URL: https://block-seasons.web.app/privacy-policy.html
  • 스크린샷: docs/store/screenshots/ios/ (1290×2796=6.7", 3장). 6.5"는 같은 컷 재업로드 또는 생략 가능

B-3. 앱 개인정보 (App Privacy) — 아래 값 그대로

데이터 수집 목적 사용자 연결 추적
기기 ID(광고 식별자) 제3자 광고 아니요
사용 데이터(제품 상호작용) 분석, 앱 기능 아니요 아니요
  • 추적 사용 이유(ATT) 문구 예: "비맞춤형 대신 맞춤형 광고를 제공하기 위해 사용합니다."

B-4. IAP 마무리 (remove_ads)

  • 표시 이름: EN Remove Ads / KO 광고 제거
  • 설명: 배너·전면 광고를 영구히 제거합니다. 보상형 영상은 그대로 사용할 수 있어요.
  • 리뷰용 스크린샷: 앱 설정 화면(광고 제거 버튼 보이는 캡처) 1장 첨부
  • ⚠️ 첫 IAP는 앱 버전과 함께 제출해야 함 (버전 화면에서 IAP 포함시켜 제출)

B-5. 계약 / 제출

  • 유료 앱 계약(Paid Apps): 비즈니스 → 계약/세금/뱅킹 완료 (본인 입력) — IAP 판매·심사 전제
  • 앱 심사 정보: 로그인 없음 → 데모 계정 불필요, 비고에 "No login required" 정도
  • 심사 제출

권장 진행 순서 (최단 경로)

  1. 0-1 키스토어 백업 (5분, 지금)
  2. 0-2 개인정보처리방침 + app-ads.txt 호스팅 완료 (block-seasons.web.app — 스토어 폼에 URL 복붙만 하면 됨)
  3. 스크린샷 준비됨 (docs/store/screenshots/) — 리스팅에 바로 업로드
  4. Apple B-1 빌드 업로드 시작 (처리에 시간 걸리니 먼저 걸어두기)
  5. Play A-1A-7 + Apple B-2B-4 문항 채우기 (대부분 위 표 복붙)
  6. Apple B-5 유료앱 계약 → 양쪽 심사 제출

문항별로 막히면 그 화면만 보여줘 — 그 부분만 같이 풀자.