← 전체 글로 돌아가기

Flutter

Flutter 앱이 실기기에서만 이상할 때

로컬 시뮬레이터에서는 잘 되는데 실제 폰에서 문제가 생기면, 어디부터 확인해야 하는지 정리했다.

검색해서 바로 따라 하는 건 위험하다. 문제를 크게 잡으면 모든 파일이 의심스러워져서 손대기 어려워진다. 실기기 로그부터 차근차근 확인하는 게 안전하다.

로컬과 운영의 차이가 자주 숨어 있다. 특히 모바일 앱은 기기의 권한, 성능, 운영체제 버전에 따라 동작이 달라질 수 있다.

실기기 로그 먼저 확인하기

문제를 크게 잡으면 모든 파일이 의심스러워진다. 먼저 실기기 로그부터 확인한다.

flutter doctor -v
flutter run --verbose

이 명령으로 현재 Flutter 환경이 정상인지, 실기기가 연결됐는지 확인할 수 있다. verbose 플래그로 상세한 로그를 볼 수 있다.

정상 상태를 먼저 정의해두기

flutter doctor 결과가 모두 초록색이어야 한다. 노란색이나 빨간색이 있으면 먼저 해결한다.

  • Android: Android SDK, build-tools 설치 필요
  • iOS: Xcode, CocoaPods 설치 필요
  • 실기기: 디버그 모드 활성화

이런 설정들이 정상이어야 앱을 실행할 수 있다.

권한 확인이 중요한 이유

실기기에는 카메라, 위치, 파일 접근 같은 권한이 필요할 수 있다. 이 권한들이 없으면 앱이 정상 동작하지 않는다.

flutter run --verbose

실행 로그에서 권한 관련 에러가 있는지 확인한다.

로컬 시뮬레이터와 실기기의 차이

로컬 시뮬레이터는 모든 권한이 있고 성능도 충분하지만, 실기기는 그렇지 않을 수 있다.

  • 시뮬레이터: 권한 모두 허용, 무한 배터리
  • 실기기: 권한 제한, 배터리 제한, 느린 성능

실기기에서만 보이는 문제들을 예측하고 대응해야 한다.

빌드 모드에 따라 다르게 동작할 수 있다

Debug 모드와 Release 모드에서 앱이 다르게 동작할 수 있다.

flutter run --release

Release 모드에서만 나타나는 문제들도 있다. 배포 전에 Release 모드로 실기기에서 충분히 테스트한다.

한 가지씩 수정하고 기록하기

권한 설정, 빌드 모드, 기기 재부팅 등 여러 가지를 시도해야 할 수 있다. 항상 한 가지만 수정한다.

  1. 한 가지 설정 수정
  2. 새로 빌드해서 실기기에 설치
  3. 실기기에서 테스트
  4. 로그 확인
  5. 결과를 기록

이 과정을 반복하면서 문제를 찾아간다. 남겨진 기록이 있으면 나중에 비슷한 문제가 생겼을 때 훨씬 빠르게 대응할 수 있다.