【Swift4】CoreLocationを使用してバックグラウンドモードで位置情報を取得する方法【Objective-C】【iOS11】

CoreLocationにあるCLLocationManagerクラスを使用して位置情報を取得する方法をご紹介します。

位置情報の取得には、フォアグラウンド時、バックグラウンド時の他にも、アプリ使用中のみ、常に許可、などのステータスがあります。

今回は、フォアグランド、バックグラウンド両方で常に位置情報が取れる場合のサンプルプログラムを紹介いたします。

ご利用の用途に合わせてカスタマイズしてみてください。

バックグラウンドモードで位置情報を取得する方法

バックグラウンドモードで取得できるように設定する

1.TARGET > CapabilitiesよりBackground ModesのLocation updatesにチェックを入れる

2.plistに認証ダイアログででる文言を設定する

「常に許可する」や「アプリ使用中のみ許可する」など使用する用途によって必要な項目が違いますが、とりあえず3つとも追加しておくといいでしょう。

・Privacy – Location Always and When In Use Usage Description
・Privacy – Location Always Usage Description
・Privacy – Location When In Use Usage Description

プログラム

さて、設定が終わったら次はプログラムです。
サンプルプログラムを用意しましたので必要に応じて追加してください。

Swift4

 

Objective-C