iOS13은 위치 정보 권한 주위의 행동을 변경할 수 있습니다

4220 단어 iOS13wwdc2019iOS
본 기사는 게시된 문서를 바탕으로 작성되었습니다.앞으로는 규격 변경 등에 따라 기재 내용과 다를 수 있다.미리 양해해 주십시오.
그리고 잘못된 점을 지적해 주시면 기쁠 것 같습니다.
WWDC 2019에서 SwiftUI와 Project Catalyst 등 흥미로운 이야기가 많이 나왔지만 그 뒤에(?)iOS13의 위치 정보 권한 주위의 행위에 큰 변화가 생겼기 때문에 간단하게 요약했습니다.

뭐가 바뀌었는지

  • 위치 정보에 대한 라이센스를 요청하는 화면에서 항상 라이센스를 선택할 수 없습니다.
    대체
  • "한 번만 허용"
  • 추가

  • 호출requestAlwaysAuthorization 시 동작 변화
  • 첫 번째 팝업에서 "사용만 허용"을 선택한 후 "임시적으로 항상 허용"으로 돌아갑니다
  • 모니터링 API에 "항상 허용"필요 없음
  • Beacon과 대략적인 위치 정보의 사용 문턱이 약간 낮다.
  • 그러니까?


    '상시 허가'의 문턱이 높아졌다

    위치 정보에 대한 라이센스를 요청하는 화면에서 자주 라이센스를 선택할 수 없습니다.


    iOS12에서 위치 정보를 얻을 때 표시되는 선택은 항상 라이센스, 어플리케이션을 사용할 때만 라이센스, 거부 등 3가지입니다.
    iOS13부터 "응용 프로그램을 사용할 때 허용", "한 번만 허용", "거절"을 선택할 수 없습니다.

    What's New in Core Location 참조
    각각을 선택할 때의 행동도 이전과 다르다.

    응용 프로그램을 사용할 때 라이센스를 선택하는 경우


    요청 권한에 따라 동작이 다릅니다.

    requestWhenInUseAuthorization 호출 시


    여느 때와 마찬가지로 응용 프로그램 사용에서만 위치 정보를 얻을 수 있다.
    응용 프로그램 측.authorizedWhenInUse에서 상태를 반환합니다.

    requestAlwaysAuthorization에서 호출할 때


    위치 정보의 시용기에 들어가다.
    사용자가 응용 프로그램 사용 시 허용을 선택하지만 .authorizedAlways 으로 응용 프로그램 측면으로 돌아갑니다.(WWDC 2019 애니메이션에서 임시 일반 라이센스로 설명됨)
    iOS는 이 시험 기간 동안 어떤 사용자가 바쁘지 않을 때 사용자에게 "사용 중"한 번만 허용할지 아니면 "자주 허용"한 번만 허용할지 물어본다.

    What's New in Core Location 참조
    여기서 사용자는 응용 프로그램 사용에서만 위치 정보를 얻을 수 있고 원래의 상태를 유지할 수 있다.
    여기서 알 수 있듯이 iOS13은 진정한'경상허가'에 도달하기 전의 문턱이 높아졌다.
    지금까지는 최초의 팝업 메뉴에서 자주 선택하면 됐지만 진정한 자주 허가를 받기 위해서는 한 단계의 절차를 밟아야 한다. 사용자의 선택에 따라 프로그램을 사용하는 과정에서만 되돌아갈 수 있다.
    지금까지 위치 정보만 얻을 수 있는 계열 응용 프로그램(위치 정보 공유 응용 프로그램 등)
    애플리케이션을 사용할 때만 동작하도록 수정하거나 설정에서 항상 라이센스를 선택하도록 재촉할 필요가 있습니다.

    "한 번만 허용" 을 눌렀을 때


    이것은 iOS13에서 추가된 옵션입니다.
    선택한 후 응용 프로그램에 대해 응용 프로그램만 허용 상태.authorizedWhenInUse와 같은 상태로 돌아갑니다.
    따라서 한 번만 허용할지 여부를 상태에서 판단할 수 없다.
    또한 임시 라이센스로 처리되기 때문에 백그라운드로 이동한 후 일정 시간이 지나거나 다음 시작 시 권한이 결정되지 않은 상태로 돌아갑니다.
    주의해야 할 것은 백그라운드로 이동한 후 시간이 지나면 권한이 되돌아온다는 것이다.
    백그라운드에서 지속적으로 위치 정보를 요청하는 경우 allowsBackgroundLocationUpdates = true 반환되지 않으므로 문제 없음
    그렇지 않으면 위치 정보를 얻을 때마다 현재 권한을 검사해야 합니다.
    특히 응용 프로그램이 시작될 때 특정 시기에만 위치 정보를 요청할 수 있는 권한이 있으면 어려움이 많습니다...

    도대체 어떻게 된 일입니까?



    What's New in Core Location 참조
    그런 것 같습니다.

    클래스 API 모니터링에는 "항상 허용" 이 필요하지 않음


    iOS13에서 허가의 문턱은 항상 높아진다. 대신 지금까지 자주 허가하지 않으면 사용할 수 없었던 지역 검측과 대략적인 위치 정보 변경 검측은 응용 프로그램을 사용하는 과정에서만 사용할 수 있다.
    지금까지는 한 렌즈의 위치 정보를 원한다면.authorizedWhenInUse, 지역계를 사용한다면.authorizedAlways, 모든 기능에 필요한 권한이 있었다
    이번에 사용하고 싶은 기능에 따라 어떤 권한이 필요한지 고려하지 않으면 된다.
    그러나 응용 프로그램을 사용하지 않은 시기에도 위치 정보를 얻고 싶은 경우 응용 프로그램은 계속 허가를 받아야 한다.

    감상


    iOS13 냄비~~~~~~

    참고 자료


    What's New in Core Location
    WWDC 애니메이션은 일본어 자막으로 볼 수 있어요.큰 도움이 됐어요.
    CLLocationManager - Core Location | Apple Developer Documentation

    좋은 웹페이지 즐겨찾기