티스토리 뷰

Naver Map API Location Button 오류를 확인했습니다.

 

Xcode version: 11.6

iOS version: 13.5 - 13.6

 

Location Button을 사용하기 위해 Info.plist에 사용자 권한을 요청하는 구문을 추가하여야합니다.

프로젝트를 새로 만들어 Naver Map API 문서를 참고하여 기본설정을 했음에도 불구하고 버튼이 작동하지 않았습니다.

 

3-4개월 전쯤 만들어두었던 프로젝트에 ViewController를 하나 생성하고

이전 프로젝트에서 사용했던 코드와 Info.plist 설정을 그대로 가져와 실행해 보았습니다.

이 프로젝트에서는 왜인지 작동이 되네요.

 

비교해 본 결과 이미 만들어 두었던 프로젝트에서는 사용자 권한 요청 Alert가 있었고, 

새로 만든 프로젝트에서는 Alert가 작동하지 않았습니다. 

 

먼저 위치 권한에 대한 상태를 확인해 보았습니다. 

rawValue value description
0 notDetermined 사용자가 아직 아무런 결정도 하지 않은 상태
1 restricted 위치정보를 사용할 수 있는 권한이 없는 상태
2 denied 사용자가 권한을 명시적으로 거부했거나 설정에서 위치 서비스가 비활성화되어 있는 상태, 위치접근허용: 안 함
3 authorizedAlways 사용자가 언제든지 자신의 위치를 사용할 수 있는 권한이 있는 상태, 위치접근허용: 항상
4 authorizedWhenInUse 사용자가 앱을 사용하는 동안에만 위치를 사용할 수 있는 권한이 있는 상태, 위치접근허용: 앱을 사용하는 동안
class ViewController: UIViewController {
	override func viewDidLoad() {
		super.viewDidLoad()
		let locationStatus = CLLocationManager.authorizationStatus()
		print(locationStatus.rawValue)
	}
}

위 실행결과로 0 값이 출력되는 것을 확인하였습니다.

 

 

이 부분이 문제라고 생각하여 권한을 요청하는 Alert을 띄우는 코드를 추가해주었습니다.

class ViewController: UIViewController {
	let locationManager = CLLocationManager()
    
	override func viewDidLoad() {
		super.viewDidLoad()
        
		self.locationManager.requestWhenInUseAuthorization()
	}
}

 

Alert Image

위 와 같이 Alert가 동작하였고 Allow While Using App 을 클릭하니 Location Button이 정상적으로 작동하였습니다.

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함