コンテンツにスキップ

位置情報設定

FANSHIP SDK には位置情報に関連する設定項目があり、位置情報の利用の有無にかかわらず、組み込み時に設定作業が必要となります。


位置情報を利用しない場合

Settings.bundle > Root.plist ファイルのうち、位置情報設定に関する項目(Item2, Item3, Item4)を削除してください(下図赤枠部分)
8-1.png

これにより、SDK 内部では位置情報の利用が行われなくなります。

iPhone 端末においては「設定 > アプリ名」と進んだ画面に、位置情報に関する項目が表示されなくなります。


位置情報を利用する場合

  1. アプリプロジェクトの TARGETS > Info > Custom iOS Target Properties 内に、以下3つのキーと値を追加してください。

    • Privacy - Location Always and When In Use Usage Description (iOS11,12用)
    • Privacy - Location Always Usage Description (iOS10以下用)
    • Privacy - Location When In Use Usage Description (iOS13用)

    上記3つのキーの値には、位置情報を利用する目的(利用理由)を記述してください。

    5-1.png

    「利用理由」は App Store の審査で確認されます

    位置情報を利用しているにもかかわらず、この記述が行われていない場合、App Store の審査結果に影響が出る可能性があります。

    「利用理由」はエンドユーザーに表示されます

    3つのキーの値として記述した文言は、iOS の許諾ダイアログなどで利用されます。
    5-2.png
    なお、iOS のバージョンアップを契機に、文字列が表示される箇所は Apple により変更される可能性がありますので、エンドユーザーの混乱を避けるためにも、3つの値には原則同一の文字列を記述してください。

  2. PopinfoConfiguration.m ファイルにおいて、popinfoLocationUseYES にしてください。

    アプリ側で「地理的領域観測」を利用している場合

    同ファイルの popinfoGeofenceUseNO に変更してください。FANSHIP SDK の位置情報は、地理的領域観測(CLLocationManager startMonitoringForRegion:)も利用しており、バッティングを防ぐ必要があります。

引き続き、利用する位置情報の種別ごとに、下記の設定も行ってください。


ネットワーク測位 のみ

Info

ネットワーク測位は、iOS の「大幅変更位置情報サービス」のことであり、携帯基地局や Wi-Fi アクセスポイント などを利用して位置情報を測位します。
GPS と比較して精度などが劣りますが、端末の電池消費量が少なくて済みます。

ネットワーク測位 のみ利用 する場合は、Settings.bundle > Root.plist ファイルのうち、位置情報精度に関する項目 Item4 を削除してください(下図赤枠部分)

定期 GPS 測位も利用する場合は、この設定を行わないでください。

8-2.png

これにより、SDK 内部では GPS を起動することなく、ネットワーク測位のみの位置情報検出が行われるようになります。

iPhone 端末においては「設定 > アプリ名」と進んだ画面に「位置情報精度」が表示されなくなります。

キーチェーン利用時の注意点

アプリ側でキーチェーンにデータを保存している場合、アクセス属性にご注意ください。

iOS の仕様上、位置情報(ネットワーク測位)を利用する場合において、エンドユーザーが App をターミネートした後に端末を持って移動した場合、OS によってアプリがバックグラウンドで自動起動されます。
このとき、端末がロック状態であった場合、キーチェーンのアクセス属性によっては保存したデータにアクセスできない可能性があります。

アプリ側においてこのタイミングでキーチェーンのデータを読み込む実装をしている場合は、キーチェーンにデータを保存する際にアクセス属性 kSecAttrAccessibleAfterFirstUnlock などを明示的に指定するようにする必要があります。


定期 GPS 測位

Info

「定期 GPS 測位」は当社独自のシステムであり、電池消費量をなるべく抑えながらバックグラウンドで GPS 測位を定期的に行います。
GPS 測位は屋外での精度は高く安定していますが、ネットワーク測位と比較すると電池消費量が多くなります。
また、App Store の審査時に「GPS を利用する具体的な理由」を求められることがあり、審査に時間がかかる可能性があります。

  1. アプリプロジェクトの TARGETS > Capabilities > Background Modes をオンにします。
  2. Location updates」にチェックを入れます。

なお、バックグラウンドで GPS を利用する場合、App Store 審査の際にその理由や目的を説明する必要があります。

位置情報精度について

iPhone端末の「設定 > アプリ名 > 位置情報精度」の設定値は以下のように定義されます。

  • 高(高い精度)
    GPS とネットワーク測位を併用して位置情報を取得します。
    精度は高いですが電池消費が目立ちます。
    デフォルトではこの設定になっています。
  • 低(低い精度、最少の電池消費)
    主にネットワーク測位を使用して位置情報を取得します。
    電池消費量が少なくて済みます。

Wi-Fi 情報

  1. PopinfoConfiguration.m ファイルにおいて、popinfoWifiUseYES にしてください。
  2. アプリプロジェクトの TARGETS > Capabilities > Access WiFi informations をオンにします。

    なお、Wi-Fi 情報利用は App Store の審査で確認項目になります。

Access WiFi information が有効なプロファイルが必要です

プロビジョニングプロファイルに関連付けられている App ID の Capabilities においても Access WiFi information が有効になっている必要があります。
Apple Developer の Certificates, Identifiers & Profiles にて確認してください。
8-4-2.png

もし、この項目が有効になっていなかった場合は、Access WiFi information にチェックを入れた後、プロビジョニングプロファイルを再作成し、Xcodeから新しいプロビジョニングプロファイルを再度設定してください。

この設定が無効になっていると、Wi-Fi を利用した機能に不具合が発生する原因となります。


Bluetooth (iBeacon)

  1. PopinfoConfiguration.m ファイルにおいて、popinfoBluetoothIBeaconUseYES にしてください。