Apple / Google 앱 등록 가이드
Apple Developer + Google Play Developer 계정 등록 완료 (2026-04-29).
진행 상태 (2026-04-30)
- ✅ Apple Developer App ID
com.dartbrief.app등록 (Capabilities: Push, Sign In with Apple, IAP) - ✅ App Store Connect 신규 앱 — 이름
공시한입, SKUdartbrief-ios, 한국어 기본 - ✅ Google Play Console 신규 앱 — 이름
공시한입(ko-KR 기본 등록정보 입력) - Apple Team ID:
36QL8R22FZ - 미완료: 스크린샷, 개인정보처리방침 URL, IAP 상품 등록 (디자인·기능 안정화 후)
- IAP 테스트는 자동갱신 구독 2종 —
dartbrief.pro.monthly ₩1,000/dartbrief.max.monthly ₩2,000(PRO/MAX, 같은 구독 그룹). 일회성ad_free_pass/슬롯 결제는 폐기 — policies/monetization
공통 정보
| 항목 | 값 |
|---|---|
| Bundle ID (iOS) | com.dartbrief.app (prod) / com.dartbrief.app.dev (dev) |
| Package Name (Android) | com.dartbrief.app |
| 앱 이름 | 공시한입 |
| 카테고리 | Finance + News |
| 출시 지역 | 한국 우선 |
🍎 Apple 단계
- Apple Developer Account → Identifiers → App IDs →
com.dartbrief.app등록 (Capabilities: IAP, Push, Sign In with Apple) - App Store Connect → My Apps → New App (Bundle ID 선택)
- App Information / Privacy / Pricing 입력
- Features → Subscriptions → 구독 그룹 1개 생성 → 그 안에 자동갱신 구독 2개 (그룹 내에서 업/다운그레이드 proration 처리)
dartbrief.pro.monthly(Auto-Renewable, ₩1,000/월)dartbrief.max.monthly(Auto-Renewable, ₩2,000/월)
- Sandbox Testers 등록 (실 결제 X)
- App Store Server Notifications V2 URL 설정 → backend webhook (아래 Webhook 절)
- Sign In with Apple capability ON (iOS 심사 시 Apple Login 필수)
🤖 Google 단계
- Play Console → Create App → 정보 입력
- Main store listing (스크린샷, 아이콘 512×512, feature graphic)
- Categorization, Contact, Privacy policy URL
- App Bundle (AAB) 업로드 (Internal testing 트랙)
- Keystore 생성 필요:
mobile/android/app/upload-keystore.jks
- Keystore 생성 필요:
- Monetize → Subscriptions → 자동갱신 구독 등록 (한 base plan 그룹에 2개)
dartbrief.pro.monthly(월 자동갱신) ₩1,000dartbrief.max.monthly(월 자동갱신) ₩2,000- 상품 ID 는 Apple/Google 통일 → 백엔드 단순화
- License Testers 등록 (실 결제 X)
- Real-time Developer Notifications 설정
- Google Cloud → Pub/Sub topic 생성
- Push subscription → backend webhook URL
- Play Console 에 topic 입력
AdMob SSV 콜백 URL 등록 (배포 후 필수)
prod 배포 완료 후 AdMob 콘솔에서 각 광고 단위마다 SSV URL 설정:
- AdMob 콘솔 → 앱 선택 → 광고 단위
dartbrief-ios리워드 광고 단위 → 서버 측 인증 → URL:https://api.dartbrief.com/api/v1/admob/ssvdartbrief-aos리워드 광고 단위 → 동일하게 설정
미등록 시 SSV 콜백이 발생하지 않아 prod에서 광고 보상이 전혀 지급되지 않음.
상품 라인업 (확정 — 2026-05-25)
- 구독 2티어 (유일 IAP, 같은 구독 그룹):
dartbrief.pro.monthly₩1,000/월 — 주간 분석 60 + 관심종목 30dartbrief.max.monthly₩2,000/월 — 주간 분석 200 + 관심종목 100
- 일회성 슬롯/광고제거 상품 폐기 — 도메인/정책 룰: domain-subscription · policies/monetization
Webhook
API 명세는 api/subscription. 둘 다 backend 라우트 추가 필요 (현재 미존재).
- Apple ASSN V2:
POST https://api.dartbrief.com/internal/appstore-notifications(signed payload JWS 서명 검증) - Google Play RTDN:
POST https://api.dartbrief.com/internal/play-rtdn(Pub/Sub push, base64 RTDN payload)
만료/환불 처리 (구독 다운그레이드)
- webhook(또는 verify refresh) 수신 →
premium_until회수 → 무료로 강등 - capacity 가 새 티어 상한(무료 3 / PRO 30) 복귀, 초과 종목은 첫 접속 alert → 하락 시각 +7d(만료/환불/MAX→PRO 다운그레이드가 적용된 시점 기준) 경과 시 새 상한만 남기고 자동 정리. ⚠️
premium_until기준 금지 — MAX→PRO 하향은premium_until이 미래로 유지돼 정리가 한 주기 이상 지연됨 - 상세 규칙: domain-subscription 다운그레이드 절