わふうの人が書いてます。

iOSアプリケーション開発、BLEのファームウェアとハードウェア試作のフリーランスエンジニア。

WWDC20 What’s new in location

What’s new in location https://developer.apple.com/videos/play/wwdc2020/10660

CoreLocationの、ユーザ許可がiOS14で変わります。プライバシーの保護のために、位置情報の利用にはこれまでも考慮が重ねられてきましたが、iOS14ではさらに、利用者に正確な位置情報を要求した時に、利用者が低精度の位置情報利用を選択して許可できるようになります。

位置情報利用のダイアログに、位置情報を正確/低精度を切り替えるボタンが表示されて、ユーザはそれで切り替えができます。最初から低精度な位置情報を要求している場合には、このボタンは表示されません。

アプリケーションが、本当に正確な位置情報を必要とするときは、一時的に正確な位置情報を要求するなど、アプリの目的に合わせた位置情報取得の実装が必要になります。また、この位置情報の利用許可は、WatchアプリとiPhoneアプリ間で、同期します。Watchのコンパニオンアプリで位置情報の利用を許可すれば、iPhoneの本体アプリでもその許可が有効になります。

低精度の位置情報は、円の領域で与えられます。その中央にユーザがいるわけではありません。位置情報は、利用者の真の位置情報にノイズを加えたものではありません。その利用者は、その円のどこかに入っている、という程度の情報です。

例えば、車で移動しているとき、円の領域のなかを利用者が移動していき、円の縁にくれば、その円の領域は更新されて、次に利用者がいるだろう領域を示します。

低精度の位置情報で、Visit APIでバックグラウンド動作をするときは、移動がなければ通知はなく、移動があるときは1時間に4回程度の通知がきます。Visit APIは、正確な位置情報取得時でも、低精度な取得時でも、位置に入った時刻それ自体は、訪れた時刻が通知されます。低精度だからと言って、時間まで低精度になるわけではありません。

ビーコン及びそのほかの領域モニタリングが、.reducedAccurary では無効になります。

AppClipsではalwaysの位置情報は使えない。1日有効です。

Widgetでは、info.plistにNSWidgetWantsLocationを含めます。