d3ro-voice/memory/handoff_rn_cli.md

3.2 KiB

name description type originSessionId
M-2 + RN CLI 세션 핸드오프 Phase M-2 완료 + Expo→RN CLI 전환 + Android 빌드 성공. 다음은 Metro 번들 에러 수정 + 화면 렌더링 확인. project 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단계):
    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 패치 불필요.