-
iOS 13에서 리뉴얼된 위치 정보 변경 필독 사항 2 - 위치정보 한 번 허용iOS 2020. 3. 7. 15:43반응형
이전 포스트와 이어집니다.
https://sesang06.tistory.com/174
시작
iOS 13에서 위치 정보 권한을 요청하면, 한 번 허용 이라는 선지가 새로 등장합니다.
한 번 허용을 누르고,
func locationManager( _ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus)
에서 status 값의 변화를 체크해 보았습니다.
authorizedWhenInUse 입니다.
이 상황에서 설정 창으로 돌아가 앱의 상태를 확인해 봅시다.
새로운 선지, 다음번에 묻기 에 체크되어 있습니다.
이제 앱을 종료하고 재실행해 보았습니다.
func locationManager( _ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus)
에서 status 값의 변화를 체크해 보았습니다.
notDetermined 입니다.
그리고 아까와 동일한 팝업이 재노출됩니다.
정리해 봅시다.
- 개발자가 위치정보 허용, locationManager.requestWhenInUseAuthorization() 혹은 locationManager.requestAlwaysAuthorization() 을 요청합니다.
- 유저가 한 번 허용 을 선택했습니다.
- 유저가 설정에서 다음번에 묻기 를 확인할 수 있습니다.
- CLLocationManagerDelegate 가 authorizedWhenInUse 을 수신했습니다.
- 유저가 앱을 재실행합니다.
- CLLocationManagerDelegate 가 notDetermined 을 수신했습니다.
애플은 새로 추가된 한 번 허용 상태를 임시적(Temporary) 허용이라고 명명했습니다.
임시적 허용
임시적 허용 상태에서는 앱을 사용하는 동안 위치를 받아낼 수 있습니다.
아래의 조건 중 하나로 진입했을 경우 notDetermined 로 되돌아갑니다.
1. 앱을 종료하고 재실행할 때
2. 앱이 백그라운드로 돌아가고, 위치 정보를 사용이 만료될 까지 충분히 시간이 다시 지나고, 앱이 포그라운드 상태로 복귀할 때
반면, 아래 상황에서는 계속 기존 권한이 유지됩니다.
1. 앱이 지속적으로 포그라운드 상태에 있을 때
2. 앱이 백그라운드로 돌아가고, 바로 앱이 포그라운드 상태로 복귀할 때
3. 앱이 백그라운드로 돌아가고, allowsBackgroundLocationUpdates = true 로 주어서 백그라운드에서도 지속적으로 위치 정보를 갱신받으며, 다시 앱이 포그라운드로 복귀할 때
레퍼런스
https://developer.apple.com/videos/play/wwdc2019/705/
반응형'iOS' 카테고리의 다른 글
느려터진 iOS 빌드 속도로 고통받는 당신에게, 카르타고를 권장합니다. (0) 2020.04.24 SWIFT 질문들 (0) 2020.03.14 iOS 13에서 리뉴얼된 위치 정보 변경 필독 사항 1 - 위치정보 지연된 항상 허용 (0) 2020.03.07 UIWebView 를 WKWebView 로 이전할 때 반드시 알아야 하는 7가지 주의 사항 (0) 2020.02.28 UICollectionViewDiffableDataSource, UITableViewDiffableDataSource 로 깔끔한 콜렉션 뷰 데이터 관리하기 (0) 2020.02.26