- 위치 권한 팝업이 안 뜰 때
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에 퍼미션 선언 필수
이 기본 설정만 해주면 위치 권한 팝업은 정상적으로 뜨게 됩니다!
'flutter앱개발과정' 카테고리의 다른 글
위치 검색 앱 - 트러블 슈팅(위도 경도로 주소받아왔지만 네이버 API검색 결과가 없음) (0) | 2025.04.22 |
---|---|
위치 검색 앱 -트러블 슈팅(위도 경도 위치가 외국으로 나옴) (1) | 2025.04.22 |
Json 직렬화 역직렬화 (0) | 2025.04.11 |
기차예매 서비스 - 트러블 슈팅(다이얼로그 확인 누르면 검은 화면이 나옴) (0) | 2025.04.01 |
기차예매서비스 - 트러블슈팅(setState()를 썼는데 화면이 안 바뀜) (0) | 2025.03.31 |