TL;DR. App Store Connect に「以前のバージョンに戻す」ボタンは存在しません。バージョン番号は前に進むだけで、古いビルドを再びライブのリスティングにすることはできません。それに一番近い機能は、価格および提供状況の下にある最終互換バージョンの設定ですが、これは旧 iOS を使うユーザーがインストールできる旧ビルドを制御するだけで、新規ユーザーやすでにアップデート済みのユーザーに表示される内容を巻き戻すものではありません。不具合のあるアップデートが公開されてしまった場合、実際に使えるレバーは、進行中のフェーズドリリースを一時停止することと、必要であれば優先処理をリクエストしつつ修正版を提出することです。
不具合のあるアップデートが公開され、クラッシュレポートが届き始めると、反射的にロールバックボタンを探してしまいます。しかし App Store Connect にそのボタンはありません。これを事前に知っておけば、すでにユーザーに影響が出ている最中に、価格および提供状況の画面を10分間さまよう時間を無駄にせずに済みます。
App Store で以前のバージョンにロールバックできますか?
できません。Apple 自身の App Store Connect ヘルプも明言しています。公開中のバージョンに法的またはユーザビリティ上の問題がある場合、「アプリのアップデートを提出する必要があります」——古いビルドを現在のリスティングとして再公開する仕組みは存在しません。バージョン番号は常に増加させる必要があり、以前のビルドを選んで再びライブにすることはできません。
つまり、不具合のあるアップデートへの対処は常に、番号を後戻りさせるのではなく、より新しい番号の新バージョンを出すことになります。とはいえ、その新バージョンを作成する際には既存のメタデータ(キーワード、サブタイトル、説明文)がそのまま引き継がれるため、リスティングをゼロから作り直す必要はありません——前に進める必要があるのはビルドそのものだけです。
「最終互換バージョンの設定」は実際には何をするのですか?
これはロールバックではありません。価格および提供状況ページの下部にある最終互換バージョンの設定は、現在のリリースを実行できないほど古い iOS を使うユーザーに対して、承認済みの旧ビルドのうちどれをインストール可能にしておくかを制御するだけです。最新 iOS のユーザーや、すでにアップデート済みのユーザーに表示される内容は変わりません。
具体的には、価格および提供状況 → 最終互換バージョンの設定 → バージョンを選択、と進みます。特定の旧ビルドの選択を外せばそのビルドはまったく提供されなくなり、逆に一つ残しておけば、旧 iOS のままのユーザーはアプリをインストールできなくなる代わりに、その互換ビルドを受け取れます。このリストに表示されるのは、実際に App Store に提出されたことがあるバージョンだけです。必要なロールはアカウント所有者、管理者、または App管理者——マーケティングにはこのページへのアクセス権がなく、これはキーワードフィールドやサブタイトルと同じ制限です(詳しくはApp Store Connect のロールガイドを参照)。
この設定がしないことが2つあります。すでに現在のバージョンがインストールされているデバイスに対して、アップデートやダウングレードを強制することはありません。また、最新 iOS を使う新規ユーザーが受け取る内容にも影響しません——常に最新のライブバージョンを受け取ります。
不具合のあるアップデートが公開されてしまったときに実際にすべきこと
- フェーズドリリースがまだ進行中の状態で公開してしまった場合は、まずそれを一時停止する。 フェーズドリリースは初日にユーザーの1%へ展開され、決まった7日間のスケジュールで割合が上がっていきます。一時停止すれば、修正を準備している間、それ以上割合が上がるのを止められます。ただし、すでにアップデートを受け取ったユーザーに対してそれを取り消すことはできません。割合のスケジュールや累計30日間の一時停止上限といった詳しい仕組みは、フェーズドリリースガイドにまとめています。
- 修正済みのビルドを新バージョンとして準備する。 バージョン番号を上げ、問題を修正して再提出します。キーワードフィールド、サブタイトル、説明文は自動的に引き継がれるため、リスティングをやり直す必要はなく、前に進めるのはバイナリだけです。
- 不具合が致命的な場合は優先処理をリクエストする。 Apple の App Review ページでは、致命的な不具合の修正など、やむを得ない事情がある場合に優先処理をリクエストでき、その際は現在公開中のバージョンで問題を再現する手順を添えて提出します。これは保証されたものではなく、承認するかどうかは Apple 側の判断ですが、起動時クラッシュのような不具合であれば、通常の審査キューに戻る最速の手段になります。なお、これが早めるのは審査そのものだけであり、承認後にいつ修正版が公開されるかは、依然としてリリースオプション(自動リリース、手動リリース、スケジュールリリース)次第である点に注意してください。
- どちらの手段でも間に合わないほど深刻な場合は、アプリを配信から削除する。 これにより、再提出の準備が整うまで新規ダウンロードを完全に止められます。ただし正当な新規インストールも同時に止まってしまうため、最初に取るべき手段ではなく、最後の手段です。
ここまでの対応はいずれも、キーワードフィールド、サブタイトル、ランキングには一切触れません——不具合のあるビルドと不具合のあるリスティングは別々の問題であり、それぞれ別の対処が必要です。両者を混同すると、インシデント対応中に残されていない時間を無駄にしてしまいます。