Overview
앱의 온보딩 과정에 위치 정보 업데이트를 포함하고 있다면, 사용자에게 Core Location 권한을 요청하는 시점을 미루고 싶을 수 있습니다. 앱에서 CLServiceSession을 적절한 시점에 생성함으로써 자동으로 표시되는 권한 요청 알림창을 억제할 수 있습니다. 그럼 다음 diagnostic 프로퍼티를 순회하여 사용자가 선택한 권한 수준을 확인할 수 있습니다. 아래 예제는 권한 요청을 미루는 방법을 보여줍니다.
func doPromptingFlow() async {
await showHelloPrompt()
// Obtain a session. This causes Core Location to display the authorization prompt.
let session = CLServiceSession(authorization: .whenInUse)
// Wait for interaction with the prompt to complete (successfully or with denial)
for try await diagnostic in session.diagnostics {
if !diagnostic.authorizationRequestInProgress {
// A denial occurred.
break
}
}
await doFurtherWork()
}
이 동작을 제어하려면 앱의 Info.plist 파일에 CLRequireExplicitServiceSession 속성을 추가하세요.
