◉RORK LABEN
●EXPO — EAS Observe がネイティブクラッシュも記録(10/07)。SDK 57 は 57.0.21 以降で確認できます●SDK 58 — SDK 58 Beta は 9/15 公開。stable の日付はまだ未確認です●RN 0.88 — React Native 0.88.x の正式リリース予定は 10/12、残り3日●Q&A — expo-widgets が本番ビルドだけ真っ黒になる、という問いが出ています●RORK — 09-29 に GPT-6.1 Sol を追加。Pro・Max プランで利用できます●NEW — クライアントのアプリを作る前に決める、公開アカウントの持ち主●EXPO — EAS Observe がネイティブクラッシュも記録(10/07)。SDK 57 は 57.0.21 以降で確認できます●SDK 58 — SDK 58 Beta は 9/15 公開。stable の日付はまだ未確認です●RN 0.88 — React Native 0.88.x の正式リリース予定は 10/12、残り3日●Q&A — expo-widgets が本番ビルドだけ真っ黒になる、という問いが出ています●RORK — 09-29 に GPT-6.1 Sol を追加。Pro・Max プランで利用できます●NEW — クライアントのアプリを作る前に決める、公開アカウントの持ち主
記事一覧/開発ツール
⬡ 開発ツール/2026-06-28上級

EAS Update を少人数から配り、クラッシュ率で自動的に止める

OTA 更新は一瞬で全員に届くからこそ、悪い更新も一瞬で全員に届きます。EAS Update を少人数(カナリア)から配り、クラッシュ率を見て広げるか止めるかを自動で判断し、最後は端末側で安全網を張る設計を、動くコードでまとめます。

Rork577Expo213EAS Update7OTA7個人開発215

✦ プレミアム記事

OTA 更新(JavaScript バンドルの差し替え)には、ストア審査を待たずに修正を届けられるという大きな利点があります。けれど同じ性質が、そのまま怖さにもなります。良い更新が一瞬で全員に届くなら、悪い更新も一瞬で全員に届くからです。

私自身、個人開発で運用しているアプリに小さな修正を OTA で流したとき、ある端末構成でだけ起動直後に落ちる不具合を巻き込んでしまったことがあります。気づいて差し戻すまでの数十分のあいだ、更新を受け取った人は全員アプリが開けない状態でした。原因はコード1行でしたが、問題は「全員に同時に届いた」という配り方のほうにありました。

ここでは、EAS Update を少人数から配り、クラッシュフリー率を見て自動で広げるか止めるかを決め、最後は端末側でも安全網を張る——という三段構えの設計をまとめます。

なぜ「一気に配る」が危ないのか

ストア配信なら、悪いビルドが出ても審査と段階的リリースが緩衝材になります。OTA はその緩衝材を外して速さを得る仕組みなので、緩衝材は自分で用意する必要があります。

配り方悪い更新が当たる範囲気づくまでの猶予
全員に即時配信全ユーザーほぼゼロ
カナリア 5%5% のユーザー広げる前に判断できる
カナリア + 自動ロールバック5% の一部のみ機械が止めるまで数分

目指すのは一番下の行です。人手の監視に頼らず、悪い兆候が出たら配信を止め、端末側でも自衛する状態をつくります。

第一段: ロールアウト割合でカナリア配信する

EAS Update には、1つの更新を「何 % の端末に配るか」を制御するロールアウト機能があります。最初から全員ではなく、小さな割合で公開します。

# まず 5% にだけ配る
eas update --branch production \
  --message "fix: crash on cold start" \
  --rollout-percentage 5
 
# 問題なければ段階的に広げる
eas update:edit --branch production --rollout-percentage 25
eas update:edit --branch production --rollout-percentage 100

割合を上げるのは手動でも構いませんが、判断材料(クラッシュフリー率)を毎回目視で集めるのは現実的ではありません。そこを次の段で自動化します。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦EAS Update のロールアウト割合でカナリア配信を行う具体的なコマンドと運用
✦クラッシュフリー率を読んで「広げる/止める」を機械的に判断するスクリプト
✦更新直後のクラッシュループを expo-updates で検知し、埋め込みバンドルへ戻す安全網(5% カナリアと併用)
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥2,480 の永久アクセス
メンバーシップを見る →

関連記事

⬡ 開発ツール2026-09-03
リンクを押してもアプリが開かないとき、疑うのは assetlinks.json の置き場所より先に署名鍵です
Android App Links が検証されずブラウザに吸われる原因の多くは指紋の食い違いです。keytool の実出力と、手元で照合できる小さな検査スクリプトの実行結果を添えて整理しました。
⬡ 開発ツール2026-08-14
ライセンス表示に載せる依存は、lockfile の dev/prod では決まりません
AI ビルダーが書き出したプロジェクトの依存を実際に分類し、ライセンス表示に載せる範囲をどう決めたかの記録です。copyleft の検出結果と配布物の境界の食い違いを、本番プロジェクトの実データで確かめました。
⬡ 開発ツール2026-08-09
Hermes バイトコードの差分更新を実測する — モジュール1本の追加が更新サイズを29倍にした
2.4MB の Hermes バイトコードで OTA 差分を実測しました。1行の変更は 2,104 バイト、モジュールを1本足すと 61,197 バイト。よく言われるモジュールID安定化はほぼ効かず、効いたのは別の2つでした。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます