App Store のメタデータ・リジェクトから再提出するまでに詰まる2箇所——2.3.8(名前不一致)と版ロック
ストア名と端末の表示名がずれていると Guideline 2.3.8 でリジェクトされるが、これは新ビルドなしで直せる。だが直したあとの再提出で、版が前回の提出にロックされて 409 が返る。どちらも App Store Connect API で抜けられる。
App Store のメタデータでリジェクトされると、修正して再提出するまでに2箇所で詰まる。1つはリジェクトそのもの(名前の不一致)、もう1つは再提出しようとしたときの版ロックだ。どちらも新しいビルドは要らず、App Store Connect(以下 ASC)の操作だけで抜けられる。
バグ1:2.3.8(ストア名と端末の表示名が一致しない)は新ビルドなしで直せる
事象
Guideline 2.3.8 で「ストアに表示される名前と、実際にインストールしたときの名前が違いすぎる」という理由のリジェクトが来る。ストア上のアプリ名と、ホーム画面のアイコン下に出る名前(端末側の表示名)がかけ離れていると起きる。
「名前を直すならビルドを作り直すのか」と身構えるが、その必要はない。
原因
端末側の表示名は、アプリのバンドルに焼かれた CFBundleDisplayName(Expo なら app.json の expo.name)だ。一方ストア名は ASC 側のメタデータで、ビルドとは別に持っている。2.3.8 はこの2つの乖離を見ている。
解決策
ストア名を、端末側の表示名を内包する形に変えるだけでいい。アプリの実体には触れないので、リビルドもアップロードも不要だ。
たとえば端末側が「タイマー」なら、ストア名を「タイマー」を含む「ブランド名 タイマー」のようにする。端末名がストア名の一部として入っていれば、2.3.8 の乖離は解消する。
ASC API なら、対象ロケールの appInfoLocalizations の name を更新する。
PATCH /v1/appInfoLocalizations/{id}
{
"data": {
"type": "appInfoLocalizations",
"id": "{id}",
"attributes": { "name": "ブランド名 タイマー" }
}
}
appInfoLocalizations はロケールごとに 1 レコードあるので、対象言語すべての id に対して同じ更新をかける。ビルドを差し替えていないので、審査に出し直すだけで通る。
バグ2:メタ修正後の再提出で、版が前回のリジェクト提出にロックされている
事象
メタデータを直したので、新しいレビュー提出(reviewSubmission)を作って、そこに版を足そうとする。すると 409 ITEM_PART_OF_ANOTHER_SUBMISSION が返る。版が、前回リジェクトされた提出(state が UNRESOLVED_ISSUES)に紐付いたまま離れないためだ。
「なら前回の提出から版を外そう」と reviewSubmissionItems を個別に DELETE しても、今度は 409 Item was already submitted で拒否される。版は前の提出に囚われたまま、新しい提出にも入れられない。
原因
リジェクトされた reviewSubmission は、UNRESOLVED_ISSUES(未解決の問題あり)という「まだ生きている提出」として残る。この提出が版を握っているので、版は別の提出へ移せない。提出自体を終わらせない限り、版は解放されない。
解決策
古い reviewSubmission をキャンセルして、版を解放する。 DELETE ではなく、canceled: true で PATCH する。
PATCH /v1/reviewSubmissions/{oldSubmissionId}
{
"data": {
"type": "reviewSubmissions",
"id": "{oldSubmissionId}",
"attributes": { "canceled": true }
}
}
これで提出の state が CANCELING → COMPLETE へ進み、版が解放される。あとは通常どおり、新しい reviewSubmission を作って版を reviewSubmissionItems に足し、submitted: true で再提出すればいい。
CANCELING → COMPLETE ← 版が解放される
│
▼
新しい reviewSubmission に版を足して submitted:true で再提出
補足
- 2.3.8 の直しは「アプリを何も変えていないのに審査に出し直す」形になるが、これで問題ない。変えたのはストアのメタデータだけだ
- 再提出時に Resolution Center への返信やメールは要らない。版さえ新しい提出に載せて
submitted: trueにすれば、審査キューに戻る - どちらのバグも、ASC の Web 画面から手でも操作できる。API で自動化しているときに 409 で手が止まるが、「版がどの提出に握られているか」を意識すれば、キャンセルで解けると分かる
※ 本記事にはアフィリエイトリンクが含まれます。