본문 바로가기

flutter앱개발과정

위치검색앱 - 트러블슈팅(Geolocator 패키지사용, 위치 권한 팝업 안뜸)

- 위치 권한 팝업이 안 뜰 때

Flutter에서 위치 기반 기능을 구현할 때 가장 처음 마주치는 문제 중 하나는 앱 실행 시 위치 권한을 묻는 팝업이 아예 안 뜨는 것입니다.

이번 글에서는 제가 Flutter + Geolocator 패키지를 사용하며 겪었던 실제 문제와 해결 과정을 공유합니다.


❗ 문제 상황

앱을 실행했는데, 위치를 사용하는 코드가 있음에도 불구하고 위치 권한 요청 팝업이 뜨지 않음

콘솔에는 아무런 오류도 없고, 위치 관련 기능은 동작하지 않음.


원인

Geolocator 패키지는 자동으로 권한을 요청해주지 않기 때문입니다. Flutter 앱 개발자가 직접 위치 권한 요청 함수를 호출해야만 시스템이 권한 팝업을 띄워줍니다.

또한, iOS에서는 Info.plist에 권한 설명이 없으면 아예 요청 자체가 무시됩니다.


✅ 해결 방법

1. 위치 권한 요청 코드 추가

import 'package:geolocator/geolocator.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Geolocator.requestPermission(); // ← 권한 요청 명시적으로 호출!

  runApp(MyApp());
}

2. Info.plist 설정 (iOS 필수)

ios/Runner/Info.plist에 아래 항목 추가:

<key>NSLocationWhenInUseUsageDescription</key>
<string>앱 사용 중 위치 정보를 사용합니다.</string>

3. AndroidManifest.xml 설정 (Android 필수)

android/app/src/main/AndroidManifest.xml

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

 

✅ 마무리

  • Flutter에서는 위치 권한 요청을 개발자가 직접 해야 함
  • iOS는 Info.plist 설정 없으면 권한 팝업조차 안 뜸
  • Android는 AndroidManifest.xml에 퍼미션 선언 필수

이 기본 설정만 해주면 위치 권한 팝업은 정상적으로 뜨게 됩니다!