Files
asciinevrdie/CHANGELOG.md
JiWoong Sul c382d6d770 feat: Phase 2 — google_mobile_ads 7.x, flutter_lints 6, CHANGELOG v1.1.0
- google_mobile_ads 5.3→7.x (iOS Privacy Manifest 대응)
- flutter_lints 5→6 (최신 lint 규칙)
- CHANGELOG.md 전면 재작성 (v1.0.1, v1.1.0 릴리즈 이력)
- 버전 1.0.1+2 → 1.1.0+3
- freezed 3.x 마이그레이션 보류 (호환성 문제, 2.x 유지)
2026-03-30 18:29:38 +09:00

2.5 KiB

Changelog

프로젝트의 주요 변경 사항을 기록합니다. 형식: Keep a Changelog

[Unreleased]

Added

  • AdMob 미디에이션 지원 준비 (AppLovin MAX)

[1.1.0] - 2026-03-30

Security

  • IAP 로컬 영수증 RSA 서명 검증 (Google Play pointycastle)
  • 구매 상태 SharedPreferences → flutter_secure_storage 전환
  • 세이브 파일 HMAC-SHA256 무결성 체크섬 추가
  • 릴리즈 빌드 치트 메뉴 완전 차단 (kDebugMode 가드)

Added

  • CI 파이프라인 (.github/workflows/ci.yml: format+analyze+test)
  • ATT 추적 동의 문구 다국어화 (한/영/일)
  • iOS Podfile 최소 버전 명시 (13.0)
  • 복귀 보상 유료 유저 오프라인 시간 2배 인정
  • IAP 앱 재설치 시 자동 구매 복원
  • 테스트 105개 추가 (death_handler, item_service, shop_service, arena_service, potion_service, monetization_state, return_rewards_service)

Changed

  • google_mobile_ads 5.3 → 7.x 업그레이드 (iOS Privacy Manifest 대응)
  • flutter_lints 5 → 6 업그레이드
  • IAP 상품 ID: remove_ads → remove_ads_and

Fixed

  • 인터스티셜 광고 실패 시 onComplete 콜백 미호출
  • 아레나 DOT 스킬 INT/WIS가 ATK/DEF로 잘못 계산되던 문제
  • ProgressState.copyWith(currentCombat: null) 초기화 안 되던 버그
  • save_data JSON 캐스팅 시 null 크래시 방지
  • settings_repository _prefs! 강제 언래핑 제거
  • MonetizationState IAP 구매 상태 동기화 지연
  • death_handler print() → debugPrint() 변경
  • SpeedBoostButton 기본 배율 10→5 수정
  • 복귀 보상 AdType 잘못된 타입 사용

Refactored

  • 데스크톱 레이아웃 → DesktopGameLayout 위젯 분리
  • VictoryOverlay 734줄 → 265줄 (크레딧 콘텐츠 분리)
  • HelpDialog 496줄 → 106줄 (4개 탭 뷰 분리)
  • 미사용 StoryService 인스턴스 제거
  • 중복 파일 제거 (arena/ascii_disintegrate_widget.dart)
  • cupertino_icons 미사용 패키지 제거

Docs

  • CLAUDE.md Claude-Gemini 교차 토론 프로토콜 추가
  • CLAUDE.md 존재하지 않는 디렉토리 제거
  • 폰트 라이선스 파일 추가 (JetBrainsMono, PressStart2P)
  • 스킬 개수 문서 수정 (70→68)
  • 하드코딩 문자열 l10n 적용 (Undo/Rolls)

[1.0.1] - 2026-03-19

Added

  • 초기 릴리즈 (Google Play 내부 테스트)
  • 6개 화면 (프론트, 캐릭터 생성, 게임, 아레나, 명예의 전당, 설정)
  • 광고 수익화 (AdMob 리워드/인터스티셜)
  • IAP 광고 제거 + 프리미엄
  • 한/영/일 3개 언어 지원
  • 오프라인 완전 동작