開発記
日本語しか入っていないアプリが、ストアで英語になっていた
日本語しか入っていない、日本語のためのアプリを公開したら、ストアの表示言語が英語になっていました。 説明文も日本語、対応言語の欄も日本語、それでも「英語」です。
ストアが見ているのは、説明文ではない
ストアの言語欄は、入力した説明文の中身から決まるわけではありません。アプリのバンドルが「自分の開発言語は何か」と申告している値を見ています。
そこが初期値のまま英語になっていました。中身が全部日本語でも、申告が英語なら英語です。
直したのは1箇所
開発言語まわりの設定を日本語にしました。
developmentRegion = ja
knownRegions = ja
DEVELOPMENT_LANGUAGE = ja ← 3つのバンドルの Info.plist が全部これを参照しているこのアプリは本体のほかに拡張を2つ持っていますが、3つとも同じ変数を参照しているので、1箇所を直せば揃います。逆に言えば、揃っていないと3つがバラバラの申告をします。
言語ごとのリソースフォルダは作っていません。既定のリソースは開発言語のものとして扱われるので、開発言語を日本語にすれば、英語という候補がそもそも消えます。フォルダを増やすより、申告を正すほうが素直でした。
対応言語の一覧を持つ別の設定は残しました。そちらはストアの表示ではなく、OS が出す許可ダイアログの文言に効きます。消すと英語のダイアログが出ます。
副産物 —— キーボードが自分を英語だと言っていた
直したあとに気づきました。同じ変数を参照していたので、キーボード拡張が「これは英語のキーボードです」と申告していたのも一緒に直っていました。
日本語専用のキーボードが、自分を英語だと言っていたわけです。動作には影響しないので、こちらは指摘されるまで気づけない類でした。
確かめ方
設定を変えただけでは安心できないので、ビルドした成果物の中を開いて確認しました。3つのバンドルすべてで開発言語が日本語になっていること、キーボードの言語も日本語になっていること、版番号が想定どおりであること。
このときの「成果物の中を見る」という確認が、のちに提出前の検査を書くきっかけになりました。そちらは公開後に出た問題が、どれもコードのバグではなかったに書いています。