fruit-merge — handoff (현재 상태·불변 핵심)
목적: 안드로이드 광고수익형 게임 (배너+전면팝업 우선, 보상형 병행). 수박게임류 과일 머지 퍼즐 「과일 콩콩」 (
com.delix.fruitkong). 전연령 등급으로 초등학생 수요 흡수하되 키즈/Families 카테고리 미참여 (Families 정책 = 인증 광고SDK 강제·개인화광고 금지·eCPM 1/2.5~1/5 — 2026-07 시장리서치로 검증 확정). 갱신일: 2026-07-03 (KST)
🔶 루트 NOW 이관 — 진행·미결 (2026-08-19 대청소, 페페 지시)
루트
HANDOFF.md를 pncad 만 남기고 비웠다. 아래는 그때 옮겨온 원문(문구 무변경).
- fruit-merge 과일 콩콩(서명 APK 완료) ⏳페페 육안 + 게임명·정책URL·Play계정·AdMob 유닛 결정. →
projects/fruit-merge/handoff.md
불변 핵심 (아키텍처 결정)
- Unity 6000.3.19f1 + Android 모듈(SDK34-36/NDK/OpenJDK), 경로
C:\dev\fruit-merge. 라이선스=Hub 설치 시 자동 프로비저닝 확인. - 씬·프리팹·아트·오디오 에셋 0개 — 전부 코드 생성:
RuntimeInitializeOnLoadMethod부트스트랩(GameManager.Boot), 절차 스프라이트(FruitSprites, 128px 원+표정, PPU로 지름=2r 보장), 절차 효과음(AudioSynth, sin 합성). 빈 씬 1개(Main.unity)는 BuildScript.SetupProject가 배치 생성. 헤드리스 개발 최적화가 목적 — GUI 에디터 작업 불필요. - AdMob: com.google.ads.mobile 11.2.0 (OpenUPM 스코프드 레지스트리) + EDM. 현재 구글 테스트 유닛/앱ID —
출시 시 AdManager.cs 상수 3개 +
ADMOB_APP_IDenv→BuildScript.ConfigureAds재실행으로 교체. 광고 규칙: 배너=하단 상시 / 전면=재시작 클릭 시점(첫 3판 면제+90초 캡) / 보상형=이어하기 1회+작은과일 제거. 에디터에서는 광고 로드 생략(Application.isEditor) — GMA 더미광고가 불변 패키지폴더 프리팹 저장 에러 내는 문제 회피. - 게임 상수: 11레벨(체리→수박), 통 반폭 1.9/바닥 -3.6/게임오버선 1.9/스폰 2.7, 중력 -18, 콤보=1.1초 내 연쇄 ×(1+0.25(n-1)) 최대 3배, 드롭풀 레벨0-4 가중, 저장=PlayerPrefs(best/games/snd).
- 빌드: 배치 전용
BuildScript.{SetupProject,ConfigureAds,BuildApk,BuildAab}+SmokeTest.PlaySmoke(헤드리스 플레이모드 E2E — 도메인리로드 off로 에디터 상태 유지, 리플렉션으로 강제 드롭 30회). 서명:keystore/fruitkong.keystore+keystore/keystore.env(git 제외, 분실 주의), env 주입 방식. Unity 배치 실행 시 ELECTRON_RUN_AS_NODE 제거 필수 (VS Code env가 Hub CLI를 Node 모드로 오작동시킴 —env -u). - 시장리서치 결론(2026-07-03, 워크플로우 22에이전트 적대검증): 퍼즐=다운로드 1위 장르(Q1 2026 25억 DL), Block Blast 2025년 368M DL·광고수익 위주. 전면 eCPM 한국 $4.6~11.2, 보상형 $15~40, 배너 <$1. 현실 수익 DAU 1천=월 100~400만원대. 포트폴리오 전략(테마 리스킨 다작) 전제.
NOW
- ✅완료(2026-07-03): 1~3단계 + 6단계 빌드까지. 리서치→플랜(페페 승인: Unity/과일머지/한국+아시아/검증장르+변형)→
코드 6종+사전리뷰(워크플로우 8에이전트, 확정 3건 수정: GMA LoadInstance 리플렉션·게임오버 HUD숨김·상태전환 가드)→
스모크 PASS(30드롭·합체점수 254·게임오버·에러0)→APK 29.5MB 서명빌드 OK(AdMob ID 매니페스트 주입 aapt 검증,
arm64+v7, 라벨 "과일 콩콩")→앱아이콘 512px(PIL 수박캐릭터)+스토어 리스팅 초안(
docs/store-listing.md). 커밋체인:4f5addb(스켈레톤)→52c713c(리뷰수정)→10996e9(스모크PASS)→30a1fd0(APK+아이콘)→42d2c5d(.utmp 제외). - ✅완료(2026-07-03 밤): 폰 실기기 E2E 전 항목 통과 (mDNS adb
adb-R5CY831RHVH, 설치 Success, 런처=UnityPlayerGameActivity, Unity6는 구 UnityPlayerActivity 아님 주의). adb input 자동조작+스크린샷 검증: 타이틀(한글 OS폴백 렌더 OK)→드롭·합체·점수 →콤보 x2 팝업→배너(어댑티브 320x50/468x60)→보상형 2종(작은과일 제거 버튼 자동등장→광고→"리워드 지급됨"→효과 적용 →버튼 소멸 / 게임오버 "광고 보고 이어하기"→위쪽 절반 제거·재개)→게임오버 패널(HUD 숨김 수정 반영)→전면광고(3판 후 다시하기 시점, 90초 캡)→재시작 새게임·최고기록 1069 PlayerPrefs 영속. 스크린샷 검증 세션 스크래치패드에 있음. - 🎨진행(2026-07-03 밤): 아트 리디자인 착수 — 페페 "에셋·UI 더 귀엽게". 디자인 브리프 작성=
docs/design-brief.md(클로드 디자인용 지시문: 파스텔젤리/스티커팝/크레용동화 3종 템플릿, 과일11종+UI킷+목업3장+아이콘, 원형실루엣·단일SVG512 ·스펙명시 제약, HTML 아티팩트 산출) + 참고 스크린샷 3장=docs/reference/current-{title,play,gameover}.png. 페페가 브리프+스크린샷을 클로드 디자인에 전달→템플릿 선택→SVG 받아 코디가 PNG 래스터라이즈(Playwright)·Unity 통합 예정. - ✅완료(2026-07-03 심야): 스티커팝(템플릿B) 아트 통합 + 페페 버그리포트 2건 수정 (커밋
1d884c5, 폰 설치·스크린샷 검증). ①자동 연속드롭 버그 = 조준 시작을 GetMouseButton(홀드)→GetMouseButtonDown(다운) 기반 상태머신으로 — UI/광고에서 흘러들어온 터치가 뗄 때 드롭되던 경로 차단, DropHeld 후 aiming 명시 리셋. ②탄성 = bounciness 0.05→0.22(살짝 통통). ③아트 = 클로드 디자인 핸드오프(art/svg/handoff-B-sticker/, 과일11 SVG+아이콘+manifest+ui-spec)를 resvg-py로 1024px PNG 래스터라이즈→Assets/Resources/fruits/로드(절차생성 폴백 유지), 콜라이더 정합=본체반경 0.898×스프라이트 실측(픽셀 알파 스캔, 전 레벨 동일)으로 PPU 보정. ④UI 스킨 = ui-spec 반영: 팔레트(#FFDE59/#241E2B/#FF4D6D/#2FCB63/#FF8A2B), 폰트 블랙한산스(로고)+도현(UI) OFL TTF Resources 로드, 코드생성 라운드렉트 9-slice(SDF+테두리)+입체그림자 버튼, 로고 흰 외곽선+회전, 흰 통+잉크 테두리, 위험선 #FF2E52, 새 앱아이콘. 스크린샷=docs/reference/v2-{title,play}.png. ⚠주의: 폰 화면 꺼진 상태(am start)면 앱이 즉시 백그라운드행(TERM_WINDOW)→검정 스크린샷 — KEYCODE_WAKEUP+dismiss-keyguard 후 재전면화 필요. ⚠페페 육안 대기: 탄성 체감·자동드롭 재발 여부·사운드. - ⏳남은 것: ①페페 육안 = 사운드·조작감(폰에 설치돼 있음) ②출시용 AAB 빌드(아이콘 포함, 진행 중) ③7-8단계 = 페페 결정·계정 필요: 게임이름/패키지 확정(현 "과일 콩콩"/com.delix.fruitkong), 개인정보처리방침 공개 URL (GitHub Pages 등 — 푸시 승인 필요), Play Console 계정 생성시점(2023-11 이후=비공개테스트 20명×14일), AdMob 실유닛 3개+앱ID 발급.