README에 로그인 구성·폰트·제출 빌드 대응과 재빌드 방법 정리
This commit is contained in:
+45
-8
@@ -37,7 +37,17 @@ JDK 17 을 Flutter 에 지정합니다.
|
|||||||
fvm flutter config --jdk-dir <JDK 17 경로>
|
fvm flutter config --jdk-dir <JDK 17 경로>
|
||||||
```
|
```
|
||||||
|
|
||||||
## 2. 저장소에 포함하지 않은 파일
|
## 2. 이 브랜치 · 태그와 제출 빌드
|
||||||
|
|
||||||
|
| 브랜치 · 태그 | 커밋 | 대응 제출 빌드 | 산출물 SHA-256 |
|
||||||
|
|---|---|---|---|
|
||||||
|
| `project-1` · 태그 `v0.1.1+14` | `0d2394c` | 1차 보완 빌드 0.1.1(14) — Android APK · iOS TestFlight 같은 소스 | APK `7d2ebadc624666c7992ac92ac3aa5d2c5e7b4bd0c602efeabc194ec73c99eb52` · IPA `d00870facdb27d38b458cdadc5723190b9fb18bfba06c64f578e0705a28627c8` |
|
||||||
|
| 태그 `v0.2.0+10` | `be99511` | 2차 제출 빌드 0.2.0(10) | APK `856e15781d002aff066a02da0d53f9d8eeada9e1fc6b6fc139c0705c77342c2c`(릴리스 「2차 제출 빌드 v0.2.0+10」 첨부) |
|
||||||
|
| `project-2` | `4236d75` | 제출 빌드 없음 — 태그 `v0.2.0+10` 에 1차 보완(0.1.1+14) 내용을 합친 최신 코드 | — |
|
||||||
|
|
||||||
|
**재빌드 확인.** 태그를 체크아웃한 뒤 아래 3절 명령으로 빌드하면 같은 버전 · 빌드 번호의 APK 가 나옵니다. 서명 키가 달라 서명 블록은 다르므로, 비교는 `unzip -l` 로 본 파일 목록과 `classes*.dex` · `lib/*/libapp.so` 의 SHA-256 으로 합니다. 제출본과 같은 서명으로 다시 만들어야 하면 서명 키를 별도 보안 경로로 요청해 주십시오.
|
||||||
|
|
||||||
|
## 3. 저장소에 포함하지 않은 파일
|
||||||
|
|
||||||
아래 파일은 보안상 저장소에 넣지 않았습니다. 빌드 전에 준비해 주십시오.
|
아래 파일은 보안상 저장소에 넣지 않았습니다. 빌드 전에 준비해 주십시오.
|
||||||
|
|
||||||
@@ -45,16 +55,18 @@ fvm flutter config --jdk-dir <JDK 17 경로>
|
|||||||
|---|---|
|
|---|---|
|
||||||
| `android/app/google-services.json` | Firebase 콘솔 → 프로젝트 `fanuzu-dev-b020d` → 프로젝트 설정 → Android 앱(`kr.co.fanuzu.app`) |
|
| `android/app/google-services.json` | Firebase 콘솔 → 프로젝트 `fanuzu-dev-b020d` → 프로젝트 설정 → Android 앱(`kr.co.fanuzu.app`) |
|
||||||
| `ios/Runner/GoogleService-Info.plist` | 같은 화면의 iOS 앱 |
|
| `ios/Runner/GoogleService-Info.plist` | 같은 화면의 iOS 앱 |
|
||||||
|
| `config/kakao.env` | `config/kakao.env.example` 을 복사해 `FANUZU_KAKAO_NATIVE_APP_KEY`(카카오 네이티브 앱 키) · `FANUZU_LINE_CHANNEL_ID`(LINE Login 채널 ID)를 적습니다. 없으면 카카오 · LINE 로그인만 「설정 전」으로 막힙니다 |
|
||||||
|
| `firebase/functions/.env.<프로젝트>` | 서버 `fnAuthKakao` 의 `KAKAO_APP_ID`(카카오 앱 ID) · `fnAuthLine` 의 `LINE_CHANNEL_ID` 를 적습니다 |
|
||||||
| `android/key.properties` · 업로드 서명 키 | **릴리스(서명) 빌드에만** 필요합니다. 요청하시면 별도 보안 경로로 전달합니다. 디버그 빌드에는 필요 없습니다 |
|
| `android/key.properties` · 업로드 서명 키 | **릴리스(서명) 빌드에만** 필요합니다. 요청하시면 별도 보안 경로로 전달합니다. 디버그 빌드에는 필요 없습니다 |
|
||||||
|
|
||||||
설정 파일이 없으면 앱은 표본 데이터로 동작하는 목(mock) 모드로 뜹니다(디버그 빌드에서만 진입 가능).
|
설정 파일이 없으면 앱은 표본 데이터로 동작하는 목(mock) 모드로 뜹니다(디버그 빌드에서만 진입 가능).
|
||||||
|
|
||||||
## 3. 앱 빌드 · 실행
|
## 4. 앱 빌드 · 실행
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd app
|
cd app
|
||||||
fvm flutter pub get
|
fvm flutter pub get
|
||||||
fvm flutter run # 연결된 실기기 · 에뮬레이터에서 실행
|
fvm flutter run --dart-define-from-file=config/kakao.env # 연결된 실기기 · 에뮬레이터에서 실행
|
||||||
fvm flutter build apk --debug # 디버그 APK → build/app/outputs/flutter-apk/app-debug.apk
|
fvm flutter build apk --debug # 디버그 APK → build/app/outputs/flutter-apk/app-debug.apk
|
||||||
fvm flutter build apk --release # 서명 릴리스 APK (key.properties 필요)
|
fvm flutter build apk --release # 서명 릴리스 APK (key.properties 필요)
|
||||||
fvm flutter build ios --no-codesign # iOS 빌드 확인
|
fvm flutter build ios --no-codesign # iOS 빌드 확인
|
||||||
@@ -67,7 +79,7 @@ fvm flutter build ios --no-codesign # iOS 빌드 확인
|
|||||||
| `FANUZU_SHARE_BASE_URL` | 공유 링크 주소(웹 브릿지) | 공유 시 링크 없이 카드 · 문구만 보냅니다 |
|
| `FANUZU_SHARE_BASE_URL` | 공유 링크 주소(웹 브릿지) | 공유 시 링크 없이 카드 · 문구만 보냅니다 |
|
||||||
| `FANUZU_EMULATOR_HOST` | 로컬 Firebase 에뮬레이터 연결(개발용) | 실서버에 연결합니다 |
|
| `FANUZU_EMULATOR_HOST` | 로컬 Firebase 에뮬레이터 연결(개발용) | 실서버에 연결합니다 |
|
||||||
|
|
||||||
## 4. 테스트
|
## 5. 테스트
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd app
|
cd app
|
||||||
@@ -86,7 +98,7 @@ npm run test:emulator # 서버 테스트 (Firestore 에뮬레
|
|||||||
|
|
||||||
의존성을 바꾼 경우 `analyze` · `test` 만으로는 Android 네이티브 컴파일 오류를 잡지 못하므로 `fvm flutter build apk --debug` 까지 확인해 주십시오. `pubspec.lock` 의 `firebase_core` 는 4.13.0 이어야 합니다(4.14.0 에서 Android 컴파일이 실패합니다).
|
의존성을 바꾼 경우 `analyze` · `test` 만으로는 Android 네이티브 컴파일 오류를 잡지 못하므로 `fvm flutter build apk --debug` 까지 확인해 주십시오. `pubspec.lock` 의 `firebase_core` 는 4.13.0 이어야 합니다(4.14.0 에서 Android 컴파일이 실패합니다).
|
||||||
|
|
||||||
## 5. 서버 배포
|
## 6. 서버 배포
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd app/firebase
|
cd app/firebase
|
||||||
@@ -97,12 +109,37 @@ firebase deploy --only firestore,storage,functions --project fanuzu-dev-b020d
|
|||||||
|
|
||||||
Storage 규칙 배포는 Firebase 콘솔에서 Storage 를 먼저 활성화해야 합니다.
|
Storage 규칙 배포는 Firebase 콘솔에서 Storage 를 먼저 활성화해야 합니다.
|
||||||
|
|
||||||
## 6. 테스트 계정 · 권한
|
## 7. 로그인 구성
|
||||||
|
|
||||||
- 릴리스 빌드의 로그인은 **Google 계정**으로 합니다. 각자의 Google 계정으로 가입하시면 됩니다. Apple 은 iOS(TestFlight) 준비 후, Kakao · LINE 은 제공자 앱 키 수령 후 연결합니다.
|
1차 로그인은 Google · Apple · Kakao · LINE 4종입니다(별첨 B). 이메일 · 비밀번호 가입과 X 로그인은 없습니다.
|
||||||
|
|
||||||
|
| 제공자 | 앱 쪽 | 서버 쪽 | Firebase 사용자 식별 |
|
||||||
|
|---|---|---|---|
|
||||||
|
| Google | Google 로그인 SDK | Firebase Authentication | `google.com` |
|
||||||
|
| Apple | iOS 는 Apple 로그인 SDK, Android 는 Firebase 웹 흐름 | Firebase Authentication | `apple.com` |
|
||||||
|
| Kakao | 카카오 SDK 로그인 | `fnAuthKakao` 가 카카오 토큰을 확인하고 Firebase 커스텀 토큰 발급 | `oidc.kakao` 제공자 ID 로 기록 |
|
||||||
|
| LINE | LINE SDK 로그인(앱 설치 시 LINE 앱, 없으면 웹 로그인) | `fnAuthLine` 이 LINE 토큰을 확인하고 Firebase 커스텀 토큰 발급 | `oidc.line` 제공자 ID 로 기록 |
|
||||||
|
|
||||||
|
- Kakao · LINE 은 Firebase OIDC 웹 흐름이 아니라 각 SDK 와 서버 커스텀 토큰으로 로그인합니다. 제공자 ID `oidc.kakao` · `oidc.line` 은 이전 가입자의 UID 를 유지하려고 그대로 씁니다.
|
||||||
|
- Kakao · LINE 이메일은 선택 동의 항목입니다. 이메일이 없어도 제공자 고유 식별값으로 가입 · 로그인합니다.
|
||||||
|
- **SNS 연결(MY › 설정)** 은 서버가 현재 로그인과 새 제공자의 인증 자격을 확인해 붙입니다. 이메일이 같은지는 보지 않으며, 다른 FANUZU 계정에 이미 붙은 제공자는 거부합니다. 마지막 남은 제공자는 뗄 수 없습니다.
|
||||||
|
|
||||||
|
## 8. 폰트
|
||||||
|
|
||||||
|
`pubspec.yaml` 에 등록되어 앱에 들어가 있습니다.
|
||||||
|
|
||||||
|
| 패밀리 | 파일 | 쓰임 |
|
||||||
|
|---|---|---|
|
||||||
|
| 42dot Sans | `assets/fonts/42dotSans[wght].ttf` | 본문(디자인 토큰 `font-body`) |
|
||||||
|
| ABeeZee | `assets/fonts/ABeeZee-Regular.ttf` | 제목 · 수치(디자인 토큰 `font-display` · `font-mono`) |
|
||||||
|
| Pretendard(Black, 라틴 부분집합) | `assets/fonts/Pretendard-Black-Latin.otf` | 홈 헤더 워드마크 · 이클립스 숫자 |
|
||||||
|
|
||||||
|
## 9. 테스트 계정 · 권한
|
||||||
|
|
||||||
|
- 로그인은 위 4종 가운데 각자의 계정으로 가입하시면 됩니다.
|
||||||
- 운영 기능(퀘스트 · 캠페인 검수, 타임어택 발동, 결과보고 등록 등)은 운영자 권한이 있는 계정만 호출할 수 있습니다. 권한을 드릴 Google 계정을 알려 주시면 운영자 권한을 부여합니다.
|
- 운영 기능(퀘스트 · 캠페인 검수, 타임어택 발동, 결과보고 등록 등)은 운영자 권한이 있는 계정만 호출할 수 있습니다. 권한을 드릴 Google 계정을 알려 주시면 운영자 권한을 부여합니다.
|
||||||
|
|
||||||
## 7. 실기기에서만 확인 가능한 기능
|
## 10. 실기기에서만 확인 가능한 기능
|
||||||
|
|
||||||
| 기능 | 이유 |
|
| 기능 | 이유 |
|
||||||
|---|---|
|
|---|---|
|
||||||
|
|||||||
Reference in New Issue
Block a user