Skip to content

モバイル公開のゲート:バイナリ・更新・ロールバック

Web と違い、モバイルアプリは全利用者が同時に更新しない。新しいサーバー、古いアプリ、端末上のキャッシュ、場合によっては JS 更新が共存する。CI のビルド成功だけを公開条件にしない。

配布の境界を明確にする ​

ネイティブ依存、権限、OS 設定の変更には新しいバイナリが必要だ。更新機構で配れるコードも、インストール済みの実行環境と互換でなければならない。アプリ版、ビルド番号、実行環境 ID、サーバー互換範囲、ローカル移行版を記録する。サーバーの項目追加は後方互換を優先する。

業務結果で段階配布を判断する ​

インストール、起動、ログイン、主要取引、通知遷移を確認してから対象を増やす。クラッシュ率だけでは「開くが注文できない」問題を見落とす。エラー率、タイムアウト、同期待ち、注文完了率を版ごとに見て停止基準を決める。

サーバーの機能スイッチなら先に止める。不可逆な DB 移行後は旧バイナリへの戻しだけでは直らないため、前進修復を用意する。参考:Expo EAS Update。

決済フロー変更の段階公開を設計する ​

新しい版で決済確認画面、端末の状態、サーバーへの要求項目を変更するとする。公開前に互換表を作る。旧クライアントと新サーバーで決済できるか、新クライアントと旧サーバーはどう動くか、更新失敗時に何が残るかを確認する。サーバーが新項目を受け付けてからクライアントを公開し、旧項目の削除は旧版のサポート終了後にする。遠隔配信する JS 資産や設定は各 OS とストアの規則を守り、ネイティブのバイナリと資産版の互換性も確認する。

社内端末、少数の実利用者、段階的な拡大という観測可能な門を置く。各段階でサンプル数、決済完了率、クラッシュと ANR、重要画面のエラー、API 拒否率を記録する。閾値は製品の基準値と流量から決め、どのアプリにも同じ割合を当てはめない。利用者が少ないと「クラッシュ 0 件」は弱い証拠なので、手動回帰、合成取引、長めの観測期間を合わせる。

text
社内検証 → 少数利用者 → 同版・同地域の基準値と比較 → 拡大
                         ↘ 門を超過:拡大停止、戻せる部分をロールバック

何を戻すかを明確にする ​

サーバーの feature flag で入口を閉じ、遠隔資産は導入済みバイナリと互換の版へ戻せる場合がある。しかしストア経由のネイティブバイナリは直ちに旧版へ置き換えられない。データ移行や新形式の送信が済んでいるなら、旧コードでも読めるかを戻す前に確かめる。公開記録には担当者、監視画面、停止条件、戻す手順を書く。フラグ停止、互換サーバー経路の復旧、作成済み注文の扱いを演習する。参考:Expo EAS Update 配信。

MIT Licensed