はじめに
2026-08-17、さんすうおじさん を実機にインストールしたら、ホーム画面にこう並んだ。
san-su
App Store の製品ページのほうは「さんすうおじさん:倍数バキューム」と正しく出る。ストアの名称と、端末に出る名前が食い違う。
2つの名前は別のところから来る
Expo の app.json には name と slug がある。
| フィールド | 行き先 |
|---|---|
expo.name |
iOS の CFBundleDisplayName = ホーム画面のアイコン下の文字
|
expo.slug |
内部識別子。EAS のプロジェクト名などに使われる |
さんすうおじさんは、name に slug と同じ "san-su" が残っていた。雛形から起こしたとき両方に同じ値を入れ、slug だけを意識して、name を直さないまま公開した。
同時期に出したバイナリーハンズは name に "バイナリーハンズ" を入れていたので正常だった。同じ手順で作った2本のうち、片方だけが抜けている。
チェック項目はあった。値を見ていなかった
このプロジェクトのリリース手順書には、IPA を展開して表示名を確認するコマンドが既に載っている。
plutil -extract CFBundleDisplayName raw \
"$(find . -name '*.app' -maxdepth 3)/Info.plist"
コマンドは流していた。出力を見ていなかった。
手順書に項目があることと、期待値が書いてあることは別の話。「表示名を確認する」とだけ書いてあり、「何であるべきか」が書かれていない。出力に san-su と出ても、確認したことになってしまう。
直したのは、手順書に期待値を併記する形にしたこと。
plutil -extract CFBundleDisplayName raw ... # 期待値: さんすうおじさん(slug と同じ値なら NG)
直すには新しいビルドが要る
表示名はビルドに焼き込まれる。App Store Connect のメタデータではないので、後から画面上で直せない。
さんすうおじさんは 1.0.1 として作り直し、もう一度審査に出した。バージョンを1つ消費した。
ついでに見つかった「言語が EN」
同じ確認の流れで、製品ページの「言語」欄が English になっていることに気づいた。日本語のアプリなのに英語と表示される。
app.json にこの2つが無かった。
"locales": { "ja": "./locales/ja.json" },
"ios": { "infoPlist": { "CFBundleDevelopmentRegion": "ja" } }
これも入れ忘れると、ストア上の表示だけが静かに間違う。
実測しておくと役に立つこと
ホーム画面のラベルは全角5〜6文字で省略がかかる。実測では「バイナリーハンズ」が「バイナリー…」になった。長い名前を付けるなら、先頭の5文字で識別できるかを見ておく。
提出前は IPA を展開し、値を目で見て期待値と突き合わせておく。コマンドを流したかどうかではなく、何が返ったか。
確認の手順は書いてあった。私はそれを実行して、出力を読まずに次へ進んだ。
チェックリストは、埋めた項目の数ではなく、見た値の数で効く。
記事に登場したアプリ: