웹 개발
Play Console에서 에뮬레이터와 실기기 동작이 다를 때
모바일 앱은 에뮬레이터와 실제 기기에서 다르게 동작한다. 차이를 좁혀가려면 체계적으로 접근해야 한다.
Flutter 앱을 개발하다 보면 에뮬레이터에서는 잘 돌아가는데 실제 기기에서는 이상한 현상을 자주 마난다. Play Console에 올린 후에야 문제를 발견하기도 한다.
에뮬레이터와 실기기의 차이는 하드웨어, OS, 권한 설정 등 여러 층에서 비롯된다. 따라서 한 가지씩 체계적으로 확인해야 한다.
처음 보이는 증상 기록하기
문제가 발생했을 때 먼저 할 일은 증상을 정확히 기록하는 것이다:
- 에뮬레이터에서의 동작
- 실기기에서의 동작
- 기기의 OS 버전과 모델
이 정보가 있어야 다음 단계로 나아갈 수 있다.
원인을 나누는 기준
에뮬레이터와 실기기의 차이는 여러 가지 원인에서 비롯될 수 있다:
- 런타임 권한 설정
- 기기의 하드웨어 제약
- OS 버전의 차이
각각을 나눠서 확인해야 한다.
권한 확인
Android 권한 문제는 자주 실기기에서만 나타난다. 명령줄로 확인해보자:
flutter doctor -v
flutter run --verbose
이 출력에서 권한이나 기기 정보를 확인할 수 있다.
빌드 모드의 차이
디버그 빌드와 릴리스 빌드는 전혀 다르게 동작할 수 있다. Play Console에 올릴 때는 릴리스 빌드로 해야 하므로, 테스트할 때도 릴리스 빌드로 진행해보자.
로그를 적극 활용하기
실기기에서 뭐가 다르게 동작하는지 알려면 로그를 봐야 한다. 에뮬레이터의 깔끔한 로그와 달리, 실기기에서는 예상 못 한 에러나 경고가 뜰 수 있다.
- 에뮬레이터에서 확인한 동작을 실기기에서 반복한다.
- 같은 조건에서 다시 발생하는가 확인한다.
- 로그와 화면에서 차이를 정리한다.
모바일 개발은 이런 환경 차이 때문에 예측하기 어렵지만, 체계적으로 접근하면 대부분의 문제를 해결할 수 있다.