Unity から出力したプロジェクトを iOS シミュレータで動かして位置情報取得する際の設定
久々に初期設定からやる機会があり、その際に詰まったところのメモ。 動かせただけで細かい確認はしてないので他の方法もあるかも知れない。(というかありそう)
確認環境
- Unity 2020.3.4f1
- Xcode 12.4
Unity で行う設定
文言設定
Build Settings > Player Settings > Other Settings > Location Useage Description
で位置情報取得時にアプリで表示する文言を設定する。ただし、後述の通り Xcode でも設定が必要。
ターゲットの設定
まず、Build Settings > Player Settings > Target SDK
で Simulator SDK
を選択したうえでビルドして xcodeproj を出力し、一度シミュレータを起動する。
ここの目的はシミュレータをターゲットとすることで以下のファイルを出力すること。最初から実機向けにビルドした場合はシミュレータ起動前にエラーとなった。
Library/Developer/Xcode/DerivedData/Unity-iPhone-hogehoge/Build/Products/ReleaseForRunning-iphonesimulator/UnityFramework.framework
その後、Target SDK
を Device SDK
にしたうえでもう一度ビルドする。(目的は後述の通り Capabilites 設定のため)
Xcode で行う設定
ビルド設定
初期状態だとデバイス向きでシミュレータが選択できないため、ビルド設定を変更する。
画面左の Unity-iPhone
を選択、TARGETS で Unity-iPhone
を選択、Build Settings タブを選択する。
Architectures を Standard Architectures
、Supported Platforms
を iOS
に変更する。
(図は変更後の状態)
文言設定
先ほどの状態から Info タブを選択する。
Unity で設定した文言が反映されている行があるがこれだけでは不足している。
選択した項目の +
ボタンで項目を増やし、Privacy - Location Always and When In Use Usage Description
を追加する。
大文字の P で入力を始めると候補が一覧に出るため選択しやすい。
文言は埋まっていればなんでもよい。
Capabiliies の設定
位置情報をバックグラウンドでも取得することをあらかじめ設定する必要がある。
先ほどの状態から Signing&Capabilities タブを選択し、+ Capabilities
をクリックして Background Modes
を追加する。
Target SDK を Simulator SDK
にしていた場合、Signing&Capabilities タブが表示されていなかった。