빌드 안내 · 주석을 이 저장소 기준으로 정리

- 빌드 안내(BUILD.md)의 JDK 경로를 설치 위치와 무관한 지정 방식으로 변경
- 5탭 계약 파일 탐색 순서를 이 저장소 구조(app/design → 루트 design)로 정리
- README · 보안 규칙 · 소스 주석에서 이 저장소에 없는 문서 경로를 문서 이름으로 바꾸거나 삭제
- Flutter 버전 고정 파일(app/.fvmrc, 3.47.2) 추가, README 필수 환경을 같은 버전으로 갱신
- 동작 변경 없음
This commit is contained in:
Sn-Kinos
2026-10-01 01:05:35 +09:00
parent 4c3bc0304f
commit 9dd43ca405
14 changed files with 54 additions and 78 deletions
+7 -17
View File
@@ -16,7 +16,7 @@
## 2. 빌드·실행
전제: Flutter stable 3.41.7 / Dart 3.11.5 (검증에 쓴 버전), Android SDK 36, Xcode 26.6
전제: Flutter stable 3.47.2 / Dart 3.13.2 (`app/.fvmrc` 로 고정), Android SDK 36, Xcode 26.6
```bash
cd app
@@ -30,7 +30,7 @@ flutter build apk --debug # Android 디버그 APK
빌드 산출물은 `build/app/outputs/flutter-apk/app-debug.apk` 에 떨어진다.
> ⚠️ **`pubspec.yaml` 의 의존성을 추가·변경·업그레이드하면 최소 지원 OS 하한을 재계산할 것.**
> 절차: `주간보고/2주차/src/2주차_플러그인_선검증리포트.md` §3.5
> 절차: 2주차 플러그인 선검증 리포트 §3.5
>
> 최소 지원 OS 는 **별첨1 v1.0 에 계약값으로 박힌다**(견적서 1228행). 지킬 수 없는 하한을
> 계약에 적으면 그 아래 단말의 장애가 개발사 책임이 된다. 선검증 리포트의 값은
@@ -42,7 +42,7 @@ flutter build apk --debug # Android 디버그 APK
## 3. 디자인 토큰 — 손으로 옮기지 않는다
`lib/core/theme/tokens.dart` 는 **생성물**이다. 직접 고치면 시안(`시안/assets/ds.css`)과 어긋난다.
`lib/core/theme/tokens.dart` 는 **생성물**이다. 직접 고치면 토큰 문서(`design/design-tokens.md`)와 어긋난다.
```bash
cd app
@@ -79,7 +79,7 @@ Firebase 설정이 없으면 실 소셜 로그인이 물리적으로 불가능
* `FirebaseBoot.reason` 은 사용자에게 보이는 문자열이라 **내부 파일 경로를 넣지 않는다.**
경로와 원시 예외는 `FirebaseBoot.detail` 로 분리해 로그에만 남긴다.
**가드가 두 겹인 이유 (교차검증 A-01 반영)**
**가드가 두 겹인 이유**
```dart
bool get isMockSessionAvailable => !FirebaseBoot.isLive && !_releaseMode;
@@ -191,7 +191,7 @@ Firebase가 live가 되면 보존된 `currentUser`를 앱 시작 시 복원하
**이메일 가입은 구현하지 않았다.** CD-18 미확정(Q2)이라 `SocialAuthProvider` 인터페이스에
구현체 하나가 더 붙을 자리만 비워 뒀다. **기능 플래그 상수는 두지 않았다** — 읽는 분기가 없는
플래그는 "false 라서 닫혀 있다" 는 착각만 만들고, 누가 true 로 바꿔도 아무 일이 일어나지 않는다
(교차검증 A-02). 지금 이메일을 닫고 있는 것은 `AuthRepository._defaultProviders()` 에
. 지금 이메일을 닫고 있는 것은 `AuthRepository._defaultProviders()` 에
구현체가 없다는 사실 하나다.
## 7. 계약 고정 표기 — 5탭
@@ -204,9 +204,8 @@ HOME · INSIDE · GALAXY · STATION · MY
| 근거 | 위치 |
|---|---|
| 견적서 v2.1 「5탭 네비게이션」 | `Docs/Fancake_팬덤플랫폼_견적서.html` |
| 견적서 v2.1 「5탭 네비게이션」 | 견적서 v2.1 |
| 크래프트 게이트 C15 | `design/craft-allowlist.yaml` → `APP_TABS` |
| 시안 하단 탭바 | `시안/screens/S-{H-HOME,I-LOUNGE,G-PLANET,S-HUB,M-HOME}.html` 의 `<nav class="tabbar">` |
**한글화·치환·순서 변경 금지.** 스모크 테스트가 `design/craft-allowlist.yaml` 을 직접 읽어
문자열과 순서를 정확 일치로 검증한다 — 앱 코드만 고치면 테스트가 깨진다.
@@ -288,16 +287,7 @@ $ python3 tool/gen_tokens.py
`contrast_checks` 25쌍에는 앱 테마가 조립하며 새로 만드는 3쌍(선택 탭 라벨 9.21:1 ·
인디케이터 위 선택 라벨 7.93:1 · 인디케이터 위 비선택 라벨 8.05:1)이 포함돼 있다.
토큰 문서에만 있는 쌍을 검사하면 위젯 테마에서 대비가 무너져도 생성기가 통과를 찍는다(교차검증 A-04).
### 토큰 대조 — 시안 CSS ↔ 생성된 Dart
`시안/assets/ds.css` 의 `:root` 변수와 `tokens.dart` 의 색 토큰을 값 비교했다.
```
ds.css 변수 119개 · tokens.dart 색 토큰 51개 · 공통 51개
값 불일치: 0개
```
토큰 문서에만 있는 쌍을 검사하면 위젯 테마에서 대비가 무너져도 생성기가 통과를 찍는다.
### 실기기 기동 확인 (Android 에뮬레이터 · API 36)