eatthefrog

🥸🔎 버그수정 일지 2025-02-17 본문

시행착오 노트

🥸🔎 버그수정 일지 2025-02-17

eater_forg 2025. 2. 17. 21:32

 

 

 

 

 

 

 

 


1차시도: [ npx expo start a 명령어의 동작 원리 ]

1. npx expo start — Expo 개발 서버 실행

  • npx → 로컬에 설치된 npm 패키지를 실행하거나, 없으면 자동으로 다운로드해서 실행한다.
  • expo start → Expo 개발 서버(Metro bundler)를 시작한다.
    • Expo 프로젝트의 App.js (또는 index.js)를 시작 파일로 삼아 자바스크립트를 번들링한다.
    • 개발 서버는 보통 localhost:19000 (Metro 번들러)와 localhost:19001 (WebSocket 연결)에 열립니다.

2. a — 안드로이드 에뮬레이터 실행

  • a 플래그는 Android 에뮬레이터에서 앱을 열라는 명령어다.
    • Expo는 adb (Android Debug Bridge)를 사용해서 에뮬레이터를 제어한다.
    • 실행 과정:
      • 1️⃣ Expo 개발 서버는 adb devices 명령으로 현재 실행 중인 에뮬레이터를 확인한다.
        2️⃣ 에뮬레이터가 실행 중이면, Expo Go 앱을 열고 개발 서버에 연결한다.
        3️⃣ Expo Go는 localhost:19000 (또는 LAN/IP 주소)을 통해 JavaScript 번들을 다운로드한다.
        4️⃣ 에뮬레이터에서 Expo Go가 앱을 실행한다.

3. JavaScript 번들링

  • Metro 번들러가 프로젝트의 모든 자바스크립트 코드를 번들링한다.
    • 번들링 속도: 100%에 도달하면 번들 완료.
    • 이 번들은 에뮬레이터의 Expo Go에서 다운로드된다.

4. 앱 로드 및 Hot Reloading

  • 에뮬레이터에서 Expo Go 앱은 개발 서버에 연결해 번들을 실행한다.
  • 이후 코드 변경 사항이 있으면 Metro 번들러가 감지해서 Hot Reload 또는 Fast Refresh를 수행한다.

 

정리:
👉 npx expo start a는 Metro 번들러 시작 → 안드로이드 에뮬레이터에서 Expo Go 실행 → 번들 다운로드 → 앱 실행의 흐름으로 작동한다.

 

 

 

 

 

 

2차 시도: [문제 구체화]

 adb logcat을 통한 에러 확인

👉  가장 확실한 방법은 adb logcat을 사용해서 안드로이드 로그를 보는 것이다.

명령:

adb logcat *:E

👉 이 명령으로 에러 로그만 필터링해서 볼 수 있다.

  • 흔히 나오는 에러:
    • Unable to load script from assets 'index.android.bundle' → 번들 파일을 찾지 못함.
    • Network request failed → 에뮬레이터가 개발 서버에 연결하지 못함.


1️⃣ 이전에 EAS Build → Expo Go 대신 Standalone 앱 실행 → 충돌 발생.
2️⃣ Metro 번들러 캐시 → .expo, node_modules/.cache 정리.
3️⃣ developmentClient: true → EAS에서 개발용 클라이언트 빌드 필수.
4️⃣ adb reverse → 에뮬레이터 네트워크 재설정.
5️⃣ adb logcat → 에러 로그 확인으로 실마리 찾기.


 

 

 

 

 

 

레퍼런스

https://velog.io/@bcgo99/react-native-expo%EA%B0%80-%EC%97%90%EB%AE%AC%EB%A0%88%EC%9D%B4%ED%84%B0%EC%99%80-%EC%97%B0%EA%B2%B0%EC%9D%B4-%EC%95%88%EB%90%9C%EB%8B%A4

 

react native expo가 에뮬레이터와 연결이 안된다.

명령어로 안드로이드 앱을 빌드하고 런을 했다.그런데 다음과 같은 오류가 발생했다.우선 터미널에서 보았을 때명령어 이후에 빌드는 성공했다.그리고 이후에 위와 같은 오류가 난 것이다.그러

velog.io

 

https://www.reddit.com/r/reactnative/comments/1e4iq5v/expo_stuck/

 

From the reactnative community on Reddit

Explore this post and more from the reactnative community

www.reddit.com