d3ro-voice/memory/handoff_rn_cli.md

64 lines
3.2 KiB
Markdown

---
name: M-2 + RN CLI 세션 핸드오프
description: Phase M-2 완료 + Expo→RN CLI 전환 + Android 빌드 성공. 다음은 Metro 번들 에러 수정 + 화면 렌더링 확인.
type: project
originSessionId: 1e121708-835b-442a-ba0c-791770d4ca9a
---
## 2026-04-13 세션 — Phase M-2 + RN CLI 전환
### 커밋 3개 (모두 push됨)
1. `541f04d` — saasMode 분기 제거
2. `55eb621` — Phase M-2 D3RO 디자인 시스템 모바일 적용 (Expo 기반)
3. `bf36a9d` — Expo → RN CLI 전환 + Android 빌드 성공
### 프로젝트 구조
- `apps/mobile-expo/` — 이전 Expo 프로젝트 (백업, 나중에 삭제 가능)
- `apps/mobile-rn/`**현재 활성** RN CLI 프로젝트 (RN 0.85 + React 19)
- `packages/ui-native/` — DS 컴포넌트 9개 (두 프로젝트 공유)
- `packages/i18n/` — I18nProvider + 모바일 키 80+개
### RN CLI 전환 내역
| Expo | RN CLI |
|------|--------|
| expo-router | @react-navigation/native + bottom-tabs + native-stack |
| expo-av | placeholder (TODO: react-native-audio-recorder-player) |
| expo-web-browser | react-native-inappbrowser-reborn |
| expo-linking | RN Linking |
| expo-secure-store | react-native-keychain |
### Windows Android 빌드 핵심 정보
- JDK: Microsoft OpenJDK 17.0.18 (`C:\Program Files\Microsoft\jdk-17.0.18.8-hotspot`)
- Android SDK: `C:\Users\Yun Chan\Android\Sdk`
- **NDK CMake libc++_shared 버그**: Windows에서 NDK toolchain이 c++_shared를 자동 링크 안 함
- **빌드 방법 (3단계)**:
```bash
export JAVA_HOME="/c/Program Files/Microsoft/jdk-17.0.18.8-hotspot"
export ANDROID_HOME="$HOME/Android/Sdk"
export PATH="$JAVA_HOME/bin:$HOME/Android/platform-tools:$PATH"
cd apps/mobile-rn/android
# 1. Configure cmake
./gradlew configureCMakeDebug
# 2. Patch ninja (libc++_shared)
cd .. && bash scripts/fix-windows-ndk.sh
# 3. Build screens .so manually, then gradle skip cmake
$ANDROID_HOME/cmake/3.22.1/bin/ninja.exe -C node_modules/react-native-screens/android/.cxx/Debug/5r1xb623/arm64-v8a
cd android && ./gradlew assembleDebug -x :react-native-screens:buildCMakeDebug[arm64-v8a]
```
- `newArchEnabled=false`, `reactNativeArchitectures=arm64-v8a`
- node_modules 패치 필요: screens, safe-area-context, gesture-handler CMakeLists.txt + ReactNative-application.cmake
### 무선 디버깅
- 기기: SM_F956N (갤럭시 폴드), 시리얼: R3CX70NE9VH
- ADB 페어링 완료 (재연결 시 포트 변경됨 — 기기에서 확인 필요)
- APK 설치 성공, Metro 연결 확인
### 다음 작업 (다른 세션에서 이어서)
1. **Metro 번들 에러 수정** — 화면이 정상 렌더링되는지 확인 (마지막 스크린샷: 빨간 에러 화면)
2. **postinstall 스크립트** — npm install 후 자동으로 node_modules CMakeLists 패치
3. **RecordScreen** — expo-av → react-native-audio-recorder-player 교체
4. **apps/mobile-expo 정리** — 삭제 여부 결정
5. **Phase M-3 진행** — 녹음→전사→요약 핵심 플로우
**Why:** Expo Go가 느리고 불편해서 RN CLI로 전환. Windows NDK CMake 버그 때문에 빌드에 많은 시간 소요.
**How to apply:** 다음 세션에서 위 빌드 방법 참조. Mac에서는 NDK 패치 불필요.