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 모드로 실기기에서 충분히 테스트한다.
한 가지씩 수정하고 기록하기
권한 설정, 빌드 모드, 기기 재부팅 등 여러 가지를 시도해야 할 수 있다. 항상 한 가지만 수정한다.
- 한 가지 설정 수정
- 새로 빌드해서 실기기에 설치
- 실기기에서 테스트
- 로그 확인
- 결과를 기록
이 과정을 반복하면서 문제를 찾아간다. 남겨진 기록이 있으면 나중에 비슷한 문제가 생겼을 때 훨씬 빠르게 대응할 수 있다.