[Xcode] プライバシーに関わるデータアクセスの利用目的を日本語化する

 iOS 10 から、プライバシーに関わるデータにアクセスする機能を利用する場合は、Info.plist に利用目的を明記することが義務付けられました。

 通常は Info.plist に設定した文字列が利用確認ポップアップのサブタイトルとしてユーザーに表示されます。

 ですが、最初から日本語オンリーでアプリを作成していればともかく、多くの場合 Base は English だと思いますので、そのままではポップアップの利用目的が日本語環境でも英語で表示されてしまいます。

 まぁ、別に英語でも構わないのですが、日本人には日本語で表示してあげたいなーと思った時に、一瞬「ん?」となったので覚え書き。

 どなたかのお役に立ちましたら。

スポンサーリンク

読み込み中です。少々お待ち下さい

まえおき

 まずは、Info.plist に利用目的を記述せずにプライバシーデータにアクセスする機能を利用しようとしたら、どうなるかを確認してみましょう。

 今回は、位置情報にアクセスするアプリを適当に拵えて、利用目的を書かずに起動を試みます。

 すると、コンソールに以下のように出力されて、アプリを起動できません。

2017-05-18 17:17:54.898 SampleProject[37366:9358239] This app has attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSLocationWhenInUseUsageDescription key with a string value explaining to the user how the app uses this data

 やはり、「Info.plist に然るべきキーを追加して利用目的書けよ、コノヤロー」と怒られてしまいます。

 胴元に凄まれては仕方ないので、唯々諾々と追加しましょう。

利用目的の追加

 Xcode で Info.plist を開いて、利用目的を追加します。

  1. 「Information Property List」の「+」をクリックするなどして行を追加し、目的のキーを入力します。今回は「Privacy - Location When In Use Usage Description」を選択します
  2. 「Privacy」と入力した時点で候補が表示されますので、そこから選択するのが便利でしょう

  3. Type には「String」を選択し、Value に利用目的を入力します。
  4. アプリを起動すると、Info.plist に登録した文字列が、以下のようにポップアップに表示されることを確認できます

 英語の場合はこれで問題ないのですが、「Get current location」の部分を日本語環境では日本語で表示しようというのが、今回の記事の主旨になります。

多言語化しよう

 もし、まだ「Project > Info > Localizations」に「Japanese (ja)」を追加していない場合は、追加しておきましょう。

 既に追加してある場合は、次へ進んでください。

  1. Xcode で「Project > Info」を開いて「Localizations」の「+」ボタンを押します
  2. 「Japanese (ja)」を選択します。

  3. 「Finish」を押下します

InfoPlist.strings の追加

 続いて、日本語環境では日本語で利用目的を表示する為に、InfoPlist.strings ファイルを作成します。

  1. プロジェクトフォルダの右クリックから「New File...」を選択する等して、新規にファイルを追加します
  2. 「Strings File」を選択して「Next」ボタンを押下します
  3. 「Save As」に「InfoPlist」と入力して「Create」ボタンを押下します
  4. 作成された「InfoPlist.strings」を左ペインで選択し、右ペインの「Localize...」ボタンを押下します
  5. 「Japanese」を選択して「Localize」ボタンを押下すると、Info.plist の日本語用の文字列ファイルが作成されます
  6. 作成されたファイルを開き、「Privacy - Location When In Use Usage Description」に対応する「NSLocationWhenInUseUsageDescription」というキーに日本語表記を設定します。
  7. 補足:
     プライバシーデータにアクセスする機能を利用する際に記述すべきキーの対応表は、Apple 本家の Q&A 等を参照してください。

  8. ポップアップの文字列が、無事に日本語化されました

おわりに

 日本語用の InfoPlist.strings ファイルで「CFBundleDisplayName」というキーを設定することにより、アプリの名前を日本語以外の環境ではデフォルト(通常は英語)のまま、日本語環境では日本語にすることも可能です。

この記事をシェア
  • このエントリーをはてなブックマークに追加
  • Share on Google+
  • この記事についてツイート
  • この記事を Facebook でシェア