4 Commits

Author SHA1 Message Date
theorose49
e6c7ba9552 fix(mobile): edge-to-edge로 전환해 헤더/푸터 안전영역 정렬
- main: SystemUiMode.edgeToEdge + 내비게이션바 투명 → WebView가 시스템바 뒤까지
  전체 화면 차지 → 웹의 env(safe-area-inset-*) (viewport-fit=cover)가 실제값 수신
- webview: SafeArea top·bottom 모두 false (셸은 inset을 잡지 않고 웹 CSS가 처리)
  → 헤더 눌림/푸터 과다 여백 해소

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 16:26:58 +09:00
theorose49
9e8d599dc2 android: wire release signing from key.properties (debug fallback)
Firebase App Distribution 배포용 정식 서명 키 지원. android/key.properties가
있으면 release 키로 서명하고, 없으면(다른 개발자/CI) debug 키로 폴백한다.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 15:56:14 +09:00
theorose49
8c479108bd fix(android): pin AGP 8.9.1 + Gradle 8.11.1 (flutter_inappwebview proguard 호환)
flutter create 기본값 AGP 9.0.1이 getDefaultProguardFile('proguard-android.txt')
지원을 제거해 flutter_inappwebview 빌드 실패 → androidx.core 1.17.0 최소요구(8.9.1)와
겹치는 8.9.1로 고정. APK 빌드 통과 확인.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 11:08:33 +09:00
theorose49
266d7983d0 feat: spin-mobile — Flutter WebView 셸 (Android·iOS)
prod 웹앱(spin.special-partners.com)을 감싸는 네이티브 셸. 화면 개발 없음.
- InAppWebView: 쿠키/캐시 영속·UA(spinApp) 태그·풀투리프레시·외부링크 분기·오프라인 화면
- Android 하드웨어 뒤로가기(웹 히스토리→더블탭 종료), navy 스플래시/상태바
- 파일/카메라 업로드 권한(Android/iOS), 생체인증 잠금(local_auth)
- FCM 푸시(firebase_messaging) — 설정 전 자동 비활성, 토큰은 웹 세션으로 /api/devices 등록
- prod URL 고정(app_config.dart)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 10:55:54 +09:00