アプリ開発日誌
2021.03.17
【iOS】アクセス許可ダイアログの説明文の多言語対応
エンジニアのキタガワです。
今回は何度か対応しているけど、その都度調べているな、毎回調べる時間がもったいないなと思う技術メモ的なことをブログにしたためようと思います。
はじめに
iOSではアプリがユーザのプライベートな情報にアクセスする際、情報の使用許可を求めるダイアログが表示されます。
例えば、位置情報、カメラ、ライブラリなどです。
開発側はアクセス理由を説明する必要があり、説明はダイアログで行います。
このアクセス理由のダイアログがない場合は、Appleの審査に通らないことがあるので注意です。
また、このダイアログは言語ごとの用意が必要です。
つまり、アプリを英語と日本語でリリースしている場合、ダイアログも英語と日本語で表示する必要があります。
今回はダイアログの多言語化対応について説明したいと思います。
このブログでは英語と日本語で記載していますが、他の言語でもやり方は同じです。
言語の数だけ対応してください。
実際にやってみよう
では、早速やり方を説明します!
1.Locationに言語を追加する
info タブ内の Location に対応言語を追加します。
2.「InfoPlist.strings」ファイルを作成する
①プロジェクトを選択し、右クリック-[New File…]をクリックする。
②”Create a template for your new file:”で下にスクロールして[Strings File]を選択し[Next]をクリックする。
③ファイル名を「InfoPlist.strings」にし、Targets項目に問題ないかを確認して「Create」をクリックする。
※ファイル名は「InfoPlist.strings」固定です。大小一文字でも違うと認識されません。このままコピペして設定してください。
3.「InfoPlist.strings」ファイルにローカライズを設定する
①「InfoPlist.strings」ファイルをクリックする。
②ファイルインスペクタの”Localization”の[Localize…]をクリックする。
③対象の言語を選択し、「Locarize」をクリックする。
4.「InfoPlist.strings」ファイルに文言を設定する
写真のようにKeyとValueで設定します。
※各文言のセミコロンは必須です。忘れないように!
ちなみに…Keyはこちら
メディアライブラリへのアクセス : NSAppleMusicUsageDescription
Bluetooth インターフェースへのアクセス : NSBluetoothPeripheralUsageDescription
カレンダーへのアクセス : NSCalendarsUsageDescription
カメラへのアクセス : NSCameraUsageDescription
連絡先へのアクセス : NSContactsUsageDescription
ヘルスデータへのアクセス : NSHealthShareUsageDescription
ヘルスデータの変更 : NSHealthUpdateUsageDescription
HomeKit の設定データへのアクセス : NSHomeKitUsageDescription
位置情報へのアクセス (常に許可) : NSLocationAlwaysUsageDescription
位置情報へのアクセス (使用中のみ許可) : NSLocationWhenInUseUsageDescription
マイクへのアクセス : NSMicrophoneUsageDescription
加速度計へのアクセス : NSMotionUsageDescription
フォトライブラリへのアクセス : NSPhotoLibraryUsageDescription
リマインダーへのアクセス : NSRemindersUsageDescription
Siri へユーザーデータ送信 : NSSiriUsageDescription
Speech Recognition Server へのユーザーデータ送信 : NSSpeechRecognitionUsageDescription
Keyの一覧はAppleドキュメントのこちらを参照してください。
手順は以上です!
また、この「InfoPlist.strings」はアプリ名なども設定できます。
グローバル社会の昨今、日本語以外の言語設定が必要になってくるかと思います。
私のメモが皆さんのお役に立てたら嬉しいです^^♪
ライタープロフィール
【キタガワ】
エンジニア。Webシステム開発部所属。
WebアプリやWindowsアプリを制作するIT企業にてエンジニアを経験した後、EDAに入社。