← 전체 글로 돌아가기

웹 개발

Play Console에서 에뮬레이터와 실기기 동작이 다를 때

모바일 앱은 에뮬레이터와 실제 기기에서 다르게 동작한다. 차이를 좁혀가려면 체계적으로 접근해야 한다.

Flutter 앱을 개발하다 보면 에뮬레이터에서는 잘 돌아가는데 실제 기기에서는 이상한 현상을 자주 마난다. Play Console에 올린 후에야 문제를 발견하기도 한다.

에뮬레이터와 실기기의 차이는 하드웨어, OS, 권한 설정 등 여러 층에서 비롯된다. 따라서 한 가지씩 체계적으로 확인해야 한다.

처음 보이는 증상 기록하기

문제가 발생했을 때 먼저 할 일은 증상을 정확히 기록하는 것이다:

  • 에뮬레이터에서의 동작
  • 실기기에서의 동작
  • 기기의 OS 버전과 모델

이 정보가 있어야 다음 단계로 나아갈 수 있다.

원인을 나누는 기준

에뮬레이터와 실기기의 차이는 여러 가지 원인에서 비롯될 수 있다:

  • 런타임 권한 설정
  • 기기의 하드웨어 제약
  • OS 버전의 차이

각각을 나눠서 확인해야 한다.

권한 확인

Android 권한 문제는 자주 실기기에서만 나타난다. 명령줄로 확인해보자:

flutter doctor -v
flutter run --verbose

이 출력에서 권한이나 기기 정보를 확인할 수 있다.

빌드 모드의 차이

디버그 빌드와 릴리스 빌드는 전혀 다르게 동작할 수 있다. Play Console에 올릴 때는 릴리스 빌드로 해야 하므로, 테스트할 때도 릴리스 빌드로 진행해보자.

로그를 적극 활용하기

실기기에서 뭐가 다르게 동작하는지 알려면 로그를 봐야 한다. 에뮬레이터의 깔끔한 로그와 달리, 실기기에서는 예상 못 한 에러나 경고가 뜰 수 있다.

  1. 에뮬레이터에서 확인한 동작을 실기기에서 반복한다.
  2. 같은 조건에서 다시 발생하는가 확인한다.
  3. 로그와 화면에서 차이를 정리한다.

모바일 개발은 이런 환경 차이 때문에 예측하기 어렵지만, 체계적으로 접근하면 대부분의 문제를 해결할 수 있다.