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 테스트는
ad_free_pass ₩2,900부터 (슬롯 결제 보류)
공통 정보
| 항목 | 값 |
|---|---|
| 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 → In-App Purchases → 상품 등록
slot_single(Non-Consumable, ₩1,490)slot_bundle_3(Non-Consumable, ₩2,990)ad_free_pass(Non-Consumable, ₩2,900)
- Sandbox Testers 등록 (실 결제 X)
- App Store Server Notifications V2 URL 설정 → backend 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 → In-app products
slot_single(Managed product = iOS Non-Consumable 대응) ₩1,490slot_bundle_3₩2,990- 상품 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에서 광고 보상이 전혀 지급되지 않음.
결정 필요 (paid PR 시작 전)
- Consumable vs Non-Consumable: 슬롯 영구 (Non-) 권장. 정책 단순, 환불 시 자동 capacity 감소.
- 상품 라인업 확정:
slot_single+slot_bundle_3+ad_free_pass - 광고 정책:
ad_free_pass정책 결정 필요
Webhook
- Apple:
POST https://api.dartbrief.com/api/v1/webhooks/apple(Server Notifications V2) - Google:
POST https://api.dartbrief.com/api/v1/webhooks/google(Pub/Sub push) - 둘 다 paid PR 작업 시 backend 라우트 추가 필요 (현재 미존재)
환불 처리 정책 (V6 합의)
- webhook 수신 →
slot_capacity감소 - 보유 종목 > 새 capacity 시 가장 오래된 종목 자동 제거 + push 알림
- 인앱 배너는 v3 (system messages 통합 인프라 만들 시)