diff --git a/memory/handoff_rn_cli.md b/memory/handoff_rn_cli.md new file mode 100644 index 0000000..25fd7de --- /dev/null +++ b/memory/handoff_rn_cli.md @@ -0,0 +1,64 @@ +--- +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 패치 불필요.