日本語だけのUIで作ったアプリが、App Store 上では「英語アプリ」として登録されていました。しかもリリースから2週間、まったく気づいていませんでした。
同じ思い込みをしている個人開発者は多いはずなので、原因と直し方を書いておきます。
発覚のきっかけ
拙作の旅行アプリ「Daylight Trip」のストア設定を見直していたとき、iTunes Lookup API(App Storeの公開情報を返すAPI)でアプリ情報を確認したところ、こうなっていました。
https://itunes.apple.com/lookup?id=<アプリID>&country=jp
"languageCodesISO2A": ["EN"]
対応言語が EN のみ。App Store の製品ページにも「言語: 英語」と表示されます。UIは100%日本語のアプリなのに、です。
思い込み:「プライマリ言語を日本語にすれば日本語アプリになる」
App Store Connect でアプリを作るとき、プライマリ言語を「日本語」にしました。説明文もスクリーンショットも日本語。だからストアでも当然「日本語アプリ」だと思っていました。
これが罠でした。実は二重構造になっています。
- ASCのプライマリ言語 → ストアの掲載文(説明・スクショなど)の言語を決める
- 「対応言語」の表示 → アプリ本体(バイナリ)が宣言している言語から取られる
つまり、掲載文をどれだけ日本語で書いても、バイナリが「私は英語アプリです」と言っていれば、対応言語は English になります。そしてFlutterプロジェクトの雛形は、何もしなければ英語を宣言します。
原因: Info.plist の2行
Flutterの新規プロジェクトの ios/Runner/Info.plist はこうなっています。
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
この $(DEVELOPMENT_LANGUAGE) の実体は en。そして対応言語のリストを宣言する CFBundleLocalizations キーは、そもそも存在しません。この状態のバイナリを提出すると、App Store は「英語のみ対応のアプリ」と解釈します。
直し方(日本語のみのアプリの場合)
Info.plist を2ヶ所直すだけです。
<key>CFBundleDevelopmentRegion</key>
<string>ja</string>
<key>CFBundleLocalizations</key>
<array>
<string>ja</string>
</array>
flutter_localizations パッケージや .arb ファイルは不要です。あれは「複数言語に切り替えるUI」を作るための仕組みで、今回のは「このアプリが何語か」の申告の話。日本語ハードコーディングのアプリなら、申告を直すだけでいい。
注意点はひとつ: これはバイナリの変更なので、Info.plist を直して再ビルドし、新しいバージョンを審査に通して初めてストア表示が変わります。メタデータ編集だけでは直せません。
ついでに見つかった、もうひとつの「もったいない」
同じ見直しで、サブタイトル(アプリ名の下の1行)が 30文字の枠に対して13文字しか使っていないことも分かりました。
Appleはサブタイトルをアプリ名とほぼ同じ重みで検索インデックスに使います。つまり残り17文字は、未使用の検索流入枠。「海外旅行」「日照時間」「持ち物」のような、ユーザーが実際に打つ言葉をここに入れられます。
さらに、サブタイトルに入れた語はキーワード欄(非公開の100文字)と重複させる必要がないので、キーワード欄からその分を外して別の語に枠を回せます。サブタイトルとキーワード欄は、合わせてひとつの検索枠として設計するのが正解でした。
まとめ
- ASCのプライマリ言語は掲載文の言語。「対応言語」表示はバイナリの宣言で決まる
- Flutterの雛形は放っておくと英語アプリとして申告される。日本語アプリなら
CFBundleDevelopmentRegionとCFBundleLocalizationsを直す - 直したら再ビルド+新バージョンの審査が必要
- サブタイトル30文字とキーワード100文字は、重複なしで設計するひとつの検索枠
リリースして終わりではなく、ストア設定にも「審査後に気づく罠」がある。Lookup API での確認(https://itunes.apple.com/lookup?id=あなたのアプリID&country=jp)は30秒でできるので、日本語アプリを出している方はぜひ一度見てみてください。
あなたのアプリも「英語アプリ」になっているかもしれません。
Daylight Trip は SINQWELL のアプリです(Android / iOS で公開中)。この修正は次回アップデートで反映予定です。



