# 문제
프로젝트 마무리 단계이다.
디버그 버전으로 모두 잘 돌아가는 것을 마쳤고, 이제 사용자 설문조사 단계를 위해 앱을 배포했는데,
분명 디버그 버전으로는 잘만 작동되던 앱이 작동이 되지 않았다..
로그를 봐야 할 것 같은데, 이미 빌드된 앱을 어떻게 디버깅 할 수 있을까?
# 해결
구글링 결과 간단한 방법을 찾았다.
이번 프로젝트는 안드로이드 환경에서만 진행하기 때문에 adb에서 제공하는 logcat을 사용할 수 있다.
여기서 adb란?
Android Debug Bridge로 안드로이드의 실제 기기를 제어하고, 디버깅할 수 있는 commend line tool이다.
logcat은 adb에서 제공하는 로그 출력 기능이다.
logcat을 사용하려면
1. 일단 기기와 노트북을 연결된 상태에서
2. 아래의 명령어를 입력하여 기기의 최근 로그를 전부 볼 수 있다.
adb shell logcat
그런데 이렇게만 할 경우 기기의 수많은 로그들이 정신 없이 뜨는 바람에 정작 내가 보고 싶은 어플에 관한 로그가 어디에 있는지 찾기가 힘들다.
이럴경우에는
adb shell logcat | grep ReactNative
위 명령어를 사용하면 아래와 같이 빌드한 앱에 관한 log만 볼 수 있다.
결론적으로 나 같은 경우에는 log를 봤을 때 위와 같이 Axios Error 에러가 났다.
서버에 보내는 형식이 다 정상이었고, 데이터도 잘 들어갔는데 release 모드에서만 api가 작동되지 않아서 구글링을 해본 결과 문제는 http였다.
release 모드에서는 자동으로 http의 호출이 막히기 때문이었다..
# 후기
에러가 나면 왜 에러가 났는지 디버깅을 통해 파악하자
# 참고
Android Debug Bridge (adb) | Android Studio | Android Developers
Logcat 명령줄 도구 | Android 개발자 | Android Developers