【Swift】 WWDC2019のWhat's New in CoreLocationについて


前置き

今在籍している会社でCoreLocation機能を使ったアプリ(backgroundでも位置情報を取り続けるいわゆる”足あと”機能が載っている)をサービスの一部として提供しているのですが、WWDC2019のあと、「今度のアップデートから、位置情報サービスの「常に許可」がなくなります!やばいです!」みたいな情報が社内で展開されていました。
しかし、(いまさらですが)自分でプレゼンの動画やらスライドやらを確認してみると、CoreLocationの仕様が変わるのは確からしいけど、『「常に許可」がなくなる』ってだけでは要約としてあまりに乱暴だなぁと感じたので、自分の認識をまとめます。
(社内で展開されたメールも、ソースは他人の要約記事(WWDC2019行ってきたよ~、的なノリのヤツ)で、「こういう調査・展開のしかたする(一次情報を直接確認しない)から、伝言ゲームしてるうちに不正確な情報になるんだろうなぁ」と思った次第。)

資料

Apple社が掲載しているWWDC2019 - [What's new in CoreLocation]のページ
https://developer.apple.com/videos/play/wwdc2019/705/

※Resourcesのところからプレゼン動画、スライドがダウンロードできます。

何が変わるのか

で、結局何が変わるのか。

1.そもそも、(位置情報の利用を)「常に許可」(する状態)そのものがなくなるわけではない
2.アプリ起動時の位置情報サービスの利用許可を求めるダイアログ(↓の画像参照)から「常に許可」(Always Allow)という選択肢がなくなる

3.位置情報サービスを「常に許可」でbackgroundでも使いたければ、今までどおりソースにlocationManager.requestAlwaysAuthorizationを書けばよい。
 →すると、以下の手順で従来の「常に許可」と同じステータスにすることは可能。
 ①アプリ起動時の位置情報サービスの利用許可を求めるダイアログでは「このAppの使用中のみ許可」を選択させる
 ②アプリでイベント(位置情報サービスを利用するイベント?)発生時、改めて以下のようなダイアログ(↓の画像参照)が表示されるようになるため、「Change to Always Allow(常に許可に変更)」を選択させる

不明点

1.新しく表示されるようになるダイアログの表示タイミング
 →スライドにある「An event occurs」って具体的にいつなのか。
  →startLocationUpdate()が呼ばれたら?
   もしくはlocationManager(_:didUpdateLocations:)
2.「設定」アプリの位置情報サービスの画面イメージ
 →アプリ起動時のダイアログだけでなく、
 「設定」アプリの位置情報サービスの設定画面からも「常に許可」は消えるのか。

まとめ

とにかく、「常に許可」に設定するまでのフローは少し変わるものの、状態そのものがなくなるわけではなさそうなことが分かった。
もし認識に間違い・補足等があればご指摘頂きたいです。

情報展開してきたヤツには、Appleから簡単にプレゼン資料なり動画なりが入手できるんだし、自分で中身読まないにしてもリンク貼るなりファイル貼るなりしろよと言いたい。
なるべく一次情報に近いものを根拠資料として示すのは情報展開の基本だと思う。

・実際試して仕様を確認した
 >公式のマニュアルにそう書いてある
  >公式に問い合わせた結果、回答がこうだった
   >他の人の問合せ履歴を見るに、回答がこうだった
    >他の人が実際にためした結果、こういう仕様らしい 、、、みたいな。

枯れた言語を、社内独自のフレームワークで開発してるせいで、
あんまり技術とか仕様とかを調べることに慣れてないんですよね、ウチの会社。。