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

- 빌드 안내(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
+11 -22
View File
@@ -6,7 +6,7 @@ Gradle 이 조용히 실패하지 않고 명확히 죽으므로 아래를 그대
| 구성 | 값 | 비고 |
|---|---|---|
| Flutter | **3.47.2** | `fvm` 으로 고정 — `app/.fvmrc` |
| JDK | **Temurin 17** | `~/.jdks/jdk-17.0.20.1+1/Contents/Home` |
| JDK | **Temurin 17** | `fvm flutter config --jdk-dir` 로 지정 |
| Gradle | 8.14 | `android/gradle/wrapper/gradle-wrapper.properties` |
| AGP | 8.11.1 | `android/settings.gradle.kts` |
| Android SDK | `/opt/homebrew/share/android-commandlinetools` | `brew install --cask android-commandlinetools` |
@@ -21,40 +21,29 @@ Android Studio 번들 JBR 은 **JDK 25** 이고 **Gradle 8.14 와 비호환**이
JDK 17 을 쓰는 쪽을 택했다.
```bash
fvm flutter config --jdk-dir ~/.jdks/jdk-17.0.20.1+1/Contents/Home
fvm flutter config --jdk-dir <JDK 17 설치 경로>
```
`brew install --cask temurin@17` 은 sudo 를 요구한다. sudo 없이 쓰려면 Adoptium
tar.gz 를 `~/.jdks/` 에 풀면 된다.
tar.gz 를 사용자 폴더에 풀고 그 경로를 지정하면 된다.
## 테스트
```bash
export ANDROID_HOME=/opt/homebrew/share/android-commandlinetools
fvm flutter analyze
FANUZU_DESIGN_DIR=/path/to/p-fancake/design fvm flutter test
fvm flutter test
```
`FANUZU_DESIGN_DIR` 은 5탭 계약 대조용이다. 스모크 테스트가
`craft-allowlist.yaml` 의 `APP_TABS` 를 직접 읽어 앱의 `appTabs` 와 정확 일치를 검증한다.
**정본은 상위 저장소 `p-fancake/design/craft-allowlist.yaml`** 이고 이 저장소는 분리돼
있으므로, 같은 파일의 사본을 `design/craft-allowlist.yaml` 로 두었다. 탐색 순서는 아래와 같다.
스모크 테스트가 `craft-allowlist.yaml` 의 `APP_TABS` 를 직접 읽어 앱의 `appTabs` 와 정확 일치를
검증한다(5탭 계약 대조). 파일은 아래 순서로 찾는다.
1. `$FANUZU_DESIGN_DIR/craft-allowlist.yaml` — 정본을 직접 가리킬 때 쓴다.
2. `design/craft-allowlist.yaml` — 이 저장소의 사본.
3. `../design/craft-allowlist.yaml` · `../p-fancake/design/craft-allowlist.yaml` — p-fancake 와
형제로 둔 체크아웃.
1. `$FANUZU_DESIGN_DIR/craft-allowlist.yaml` — 다른 위치의 파일을 가리킬 때 쓴다.
2. `app/design/craft-allowlist.yaml` — 앱 폴더 안의 사본.
3. 저장소 루트 `design/craft-allowlist.yaml`.
사본이 있으므로 **git worktree 에서도 변수 없이 통과한다.** 그래도 못 찾으면 통과가 아니라
실패한다 — 계약 대조가 조용히 사라지면 안 된다.
사본은 정본과 갈리면 저장소마다 다른 답을 내므로, **정본을 고칠 때 사본에도 함께 복사한다.**
파일 머리에 같은 문장을 적어 두었다.
```bash
cp /path/to/p-fancake/design/craft-allowlist.yaml design/craft-allowlist.yaml
# 머리 주석 5줄은 사본에만 있으니 지우지 말고 APP_TABS·CAPS_OK 만 맞춘다.
```
하나도 못 찾으면 통과가 아니라 실패한다 — 계약 대조가 조용히 사라지면 안 된다.
루트 파일을 고칠 때는 `app/design/` 사본도 함께 맞춘다.
## 빌드