EAS Update(SDK 55)でバンドル差分配信を導入 — OTA更新を小さく
Key Points
- ダウンロード最大75%削減
- bsdiffで差分パッチ配信
- SDK55でベータ・オプトイン
Summary
SDK 55 で EAS Update にバンドル差分配信(bundle diffing)がベータ導入されました。デバイスはフルバンドルではなく bsdiff によるバイナリパッチを受け取り、ダウンロード容量を約75%削減できます(例: 3MB → 約0.75MB)。差分配信はベータかつオプトインです。
Key Points
- 有効化方法: アプリが SDK 55 以上であることを確認し、アプリ設定に
{"expo":{"updates":{"enableBsdiffPatchSupport":true}}}を追加する。 - 検証方法:
- Expo サイトの Update Details ページで差分が配信されているか確認。
- アプリ内で
Updates.readLogEntriesAsync()を呼び出し、"patch successfully applied" 等のログを探す。
- 動作原理: EAS Update は bsdiff でパッチを生成し、パッチが有意に小さく、効率的に生成できる場合のみ配信する。条件に合わなければフルバンドルを返す。
- 制限事項(実務で注意する点):
- 組み込み(embedded)バンドルはパッチのベースにならない。
- デバイスは既に公開済みのアップデートを実行している必要がある(初回はフルバンドルを受け取る場合あり)。
- パッチはチャンネル上で最新から二番目の更新に対して事前計算され、それ以外の組み合わせはオンデマンドで生成されるため、公開直後は数分の遅延でフルバンドルが配信されることがある。
- 推奨事項:
- 小さなバグ修正やコピー変更など頻繁に配信する更新では有効性が高い。
- 問題があれば Discord またはウェブ経由でフィードバックを送る。
Practical impact
開発チームはオプトイン設定を行い、差分の配信ログを確認するだけで帯域とユーザーのダウンロード時間を大幅に削減できます。パッチ生成の遅延や非適用ケースに留意して運用してください。