なえ箱

メモを植えます

NSUserTrackingUsageDescriptionの多言語対応【XCode】【Unity】

この記事をシェアする

Privacy - Tracking Usage Description(NSUserTrackingUsageDescription)の多言語対応する時に地味な沼り方したので、対応方法をメモ。

一言語なら、info.plistに追加するだけでいいのだけど、多言語だとLanguage追加して割り当てる必要がある。

手順は以下の通り。

Localizationsから言語を追加

まずはビルドして、出来たXCodeプロジェクトを開く。

開いたら、PROJECTにあるUnity-iPhoneを選択し、info内Localizationsの+から対応したい言語を追加する。

今回は日本語、英語を対応したいので English、Japanese を追加する。

f:id:nae3na:20210819050105p:plain
Localizationsに言語を追加する

各言語のInfoPlist.stringsの設定

左上のフォルダマークをクリックし、ファイル一覧を表示したら、

その中の Unity-iPhone Tests > Supporting Files > InfoPlist.strings を選択する。

選択したら、ウィンドウ右のLocalizationに、対応したい言語にチェックが入っているか確認する。(入っているならOK)

f:id:nae3na:20210819050115p:plain
InfoPlist.stringsを選んで、言語にチェックを入れる

そうすると、InfoPlist.stringsの下に各言語のファイルが増えているかと思う。

(例:InfoPlist.strings (Japanese))

ここで絶対忘れないでほしいのが、各言語のInfoPlist.stringsの、Target Membershipの

にチェックを必ず入れること。

Unity-iPhoneにチェックが入っていないと、言語ごとに置き換えされず、info.plistにある規定値を使用して表示してしまう。

f:id:nae3na:20210819060336p:plain
Unity-iPhoneに必ずチェックを入れる。本当大事

自分はここに気づかずかなり沼りました。。。

変更する項目を入力

後は変更する項目を各言語のInfoPlist.stringsへ書き込んでいくだけ。

今回はPrivacy - Tracking Usage Description(NSUserTrackingUsageDescription)を対応したいので、下のように記述する。

NSUserTrackingUsageDescription = "表示するテキストをここに入力";

例として下のような感じに入力する。

f:id:nae3na:20210819050122p:plain
言語によって変更したい項目を入力

今回のと関係ないが、CFBundleDisplayNameを置き換えるとアプリ表示名が変わる。