← 전체 글로 돌아가기

Flutter

Flutter에서 Play Console과 실기기 테스트 결과가 다를 때

Flutter 앱이 에뮬레이터에서는 정상인데 Play Console에서나 실기기에서 문제가 나면, 먼저 개발 환경 설정을 확인해야 한다.

Flutter로 앱을 만들다 보면, 에뮬레이터에서는 잘 작동하지만 Play Console에 올리거나 실기기에서 테스트할 때만 문제가 나타나는 경우가 있다. 이 경우 보통 환경 설정이나 권한, 또는 빌드 모드의 차이 때문이다.

개발 환경 상태 확인

가장 먼저 flutter doctor로 현재 설정 상태를 봐야 한다. Flutter SDK, Android/iOS 설정, 에뮬레이터나 실기기 연결 상태 등이 모두 초록색(정상)으로 표시되어야 한다.

flutter doctor -v

만약 경고나 에러가 있다면, 그것을 먼저 해결해야 한다. 예를 들어 Android SDK 버전이 맞지 않거나, iOS 배포 인증서가 없으면 실기기나 스토어 배포에서만 문제가 생긴다.

실기기에서 실행하고 로그 확인

실제 휴대폰에 연결해서 앱을 실행하고, 실행 중 나타나는 로그를 봐야 한다.

flutter run --verbose

--verbose 플래그를 쓰면 빌드와 실행 과정의 모든 단계와 에러 메시지가 터미널에 출력된다. 에뮬레이터에서는 없었던 에러 메시지가 실기기에서는 있을 것이다.

권한과 앱 설정 확인

Play Console에 올릴 때나 실기기에서만 문제가 난다면, 보통 다음과 관련이 있다:

  • AndroidManifest.xml에 필요한 권한이 선언되지 않았을 때
  • iOS의 경우 Info.plist에 필요한 권한 설명이 없을 때
  • 디버그 빌드와 릴리즈 빌드의 설정이 다를 때

Android의 경우, android/app/src/main/AndroidManifest.xml을 확인하고, iOS의 경우 ios/Runner/Info.plist를 확인해서 필요한 권한이 모두 있는지 봐야 한다.

빌드 모드 확인

에뮬레이터에서는 보통 디버그 모드로 실행되고, Play Console에 올리거나 실기기 배포는 릴리즈 모드로 빌드된다. 릴리즈 모드에서만 나타나는 문제들이 있다.

로컬에서 릴리즈 모드로 빌드해서 테스트해보자:

flutter build apk --release

이렇게 빌드한 APK를 실기기에 설치하고, 디버그 모드에서와 동일한 테스트를 해보면 배포 후 문제를 미리 발견할 수 있다.

최종 확인: 로그와 설정으로 검증

에뮬레이터와 실기기의 로그 출력을 비교하고, 어떤 부분이 다른지 정리하면:

  1. 어느 단계에서 문제가 나는지
  2. 에러 메시지가 무엇인지
  3. 권한이나 설정의 차이가 있는지

이 세 가지를 알 수 있고, 그것을 바탕으로 수정할 수 있다.