はじめに
Flutterで開発したIOSアプリを審査に提出した際、
モーダルアラートが日本語になっていないとのことでリジェクトされました。
当方、IOSアプリの経験がなく結構ハマったため
同じようにハマられている方向けに解決策を記載します。
リジェクト内容の詳細
要約すると
日本語設定なのにフォトライブラリのモーダルアラートが英語になっています。
赤枠の部分を日本語にしなければいけないみたいですね。
原文
Guideline 4.0 - Design
We noticed an issue in your app that contributes to a lower-quality user experience than Apple users expect:
- Your app's photos modal alerts are written in English while the app is set to the Japanese localization. To help users understand why your app is requesting access to a specific feature, your app's modal alerts should be in the same language as your app's current localization.
Next Steps
To resolve this issue, please revise your app to address all instances of this type of issue.
日本語にする方法
プロジェクトに日本語を追加する
アラートのテキストを日本語にする
アラートのテキストはRunner > Runner > Info.plistで設定できますが、
これを日本語にローカライズするには新しくファイルを作り、日本語のテキストを記載します。
1. ファイルを作成する
左のサイドメニューのRunner > Runnerを選択して
File > New > File...を選択
Strings.Fileを選択してNext
ファイル名はInfoPlist.strings
にします。
保存場所はXcodeで見るとRunner > Runner
Vscodeで見ると Flutter project > ios > Runner
2. InfoPlist.stringsをローカライズする
InfoPlist.stringsを選択したら右側にLocalize...ボタンが表示されるのでクリックします。
クリックするとDo you want to localize this file?
と聞かれるので
Japaneseを選択してLocalizeをクリックします。
3. 対象のKeyを探す
最初にInfo.plistを開いて該当箇所を探します。
今回はフォトライブラリのアラートなのでKeyはNSPhotoLibraryUsageDescription
になります。
<key>NSPhotoLibraryUsageDescription</key>
<string>{アラートに表示する説明文(英語)}</string>
※{アラートに表示する説明文(英語)}
を変更するとアラートの説明文も変更されます。
4. 日本語対応させる
先ほど作成したInfoPlist.stringsを開き
NSPhotoLibraryUsageDescription
に対応する値を記載します。
NSPhotoLibraryUsageDescription = "アプリは選択した画像をアプリに投稿するためフォトライブラリへのアクセスが必要です";
再度ビルドしてアラート内の説明文が変わっていたら成功です!