RORK LABEN
COMPARE — Expo が8月5日に、実際に Expo アプリを作らせる形で AI モデル3種を比較した記事を公開しました。コードと UI の品質では Fable 5 が最良という結果ですSDK — Expo SDK 57 は React Native 0.86 への追随を主眼とした小規模なリリースです。アップグレードを一大プロジェクトにしない方針が示されていますPREBUILD — expo prebuild が既定でネイティブの android / ios ディレクトリをクリアして再生成するようになりました。手を入れているプロジェクトは影響を受けますOTA — Hermes のバイトコード差分により、OTA 更新で JS バンドル全体ではなく差分だけを配信できます。規模が出るほど帯域と費用に効きますSIMULATOR — Rork はクラウド上の iOS シミュレータをブラウザへストリーミングします。Xcode も Mac 実機もなしに Apple 環境での確認ができますHARDWARE — Rork は HealthKit・ARKit / LiDAR・NFC・Dynamic Island・Metal 3D まで届き、ノーコードの通常の範囲を超えた機能に対応しますCOMPARE — Expo が8月5日に、実際に Expo アプリを作らせる形で AI モデル3種を比較した記事を公開しました。コードと UI の品質では Fable 5 が最良という結果ですSDK — Expo SDK 57 は React Native 0.86 への追随を主眼とした小規模なリリースです。アップグレードを一大プロジェクトにしない方針が示されていますPREBUILD — expo prebuild が既定でネイティブの android / ios ディレクトリをクリアして再生成するようになりました。手を入れているプロジェクトは影響を受けますOTA — Hermes のバイトコード差分により、OTA 更新で JS バンドル全体ではなく差分だけを配信できます。規模が出るほど帯域と費用に効きますSIMULATOR — Rork はクラウド上の iOS シミュレータをブラウザへストリーミングします。Xcode も Mac 実機もなしに Apple 環境での確認ができますHARDWARE — Rork は HealthKit・ARKit / LiDAR・NFC・Dynamic Island・Metal 3D まで届き、ノーコードの通常の範囲を超えた機能に対応します
記事一覧/開発ツール
開発ツール/2026-06-24上級

EAS Update を入れたのに『直したはずのバグ』が消えないとき — OTA が静かに届かない原因と運用メモ

EAS Update を導入しても OTA が一部のユーザーに届かないことがあります。runtimeVersion のドリフト、配信したのに採用されない更新、安全なロールバックの選び方を、Rork アプリの運用で実際に効いた計装とともに整理します。

EAS Update7OTA7Expo161React Native222Rork528runtimeVersionロールバック2

プレミアム記事

EAS Update を入れて最初に感じる安心感は、しばらくすると別の不安に変わります。「eas update は成功した。Published と出た。なのに、ユーザーからの不具合報告が止まらない」。私自身、個人開発で運用している Rork 製アプリで、同じ修正を二度も三度も配信し直した経験があります。問題はコードではなく、更新が一部の端末に「静かに届いていなかった」ことでした。

OTA 配信は、ビルド審査の待ち時間をなくす強力な仕組みです。一方で、配信が成功することと、それが実際にユーザーの画面に反映されることは別問題です。以下では、配信したのに直らないという状況を分解し、原因を切り分け、再発を防ぐための本番運用での勘所を整理します。チュートリアルではなく、実際に運用してつまずいた箇所の記録です。

「Published」は配信の成功であって、採用の成功ではない

eas update が返す Published は、EAS のサーバーに新しい更新が登録されたことを意味します。ここから先、その更新が実際に動くまでには、いくつもの関門があります。

段階意味失敗するとどうなるか
Publish更新が EAS に登録されるCLI がエラーを返すのですぐ気づける
マッチング端末の runtimeVersion と更新の runtimeVersion が一致不一致だと永遠に届かない(無言)
ダウンロード起動時にバンドルを取得通信状況・チェック設定次第で遅延する
適用次回起動で新バンドルに切り替わる1回目の起動では旧バンドルのまま動く

ここで最も厄介なのが2段目のマッチングです。CLI には何のエラーも出ません。配信は成功し、ダッシュボードにも更新が並びます。それでも、runtimeVersion が合わない端末には更新が一切届きません。「成功したのに直らない」の大半はここが原因です。対処の出発点は、コードを疑う前にこの一致を疑うことです。

まず確認すべきは、その更新がどの runtimeVersion に紐づいているか

切り分けの最初の一歩は、配信した更新と、ユーザーが使っているビルドの runtimeVersion が一致しているかを見ることです。

# 配信済み更新を runtimeVersion つきで一覧する
eas update:list --channel production --json --non-interactive \
  | jq '.[] | {id, runtimeVersion, message, createdAt}'

出力された runtimeVersion が、ストアに出ている現行ビルドの runtimeVersion と一致していなければ、その更新は現行ユーザーには届きません。現行ビルドの値は、ビルド一覧から確認できます。

# 直近のビルドが持つ runtimeVersion を確認する
eas build:list --platform ios --status finished --limit 5 --json --non-interactive \
  | jq '.[] | {id, runtimeVersion, appVersion, channel}'

この2つの値が食い違っていたら、コードの問題ではありません。配信先の runtimeVersion を現行ビルドに合わせて publish し直す必要があります。私はこの確認を後回しにして、正しいコードを何度も配信し直すという徒労を経験しました。最初にここを見る癖をつけてからは、切り分けが一気に速くなりました。

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

この記事の続きを読む

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

この記事で得られること
OTA 更新が『配信済みなのに端末に届かない』典型パターンと、原因を5分で切り分ける確認手順
runtimeVersion ドリフトを設計段階で防ぐポリシー選択と、混在バイナリ環境での採用率の読み方
republish・channel:edit・embedded ロールバックの違いと、事故の種類ごとに正しい戻し方を選ぶ判断基準
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

開発ツール2026-05-30
OTAアップデートを段階配信する仕組みを、壊さずに育てる
EAS Updateで全ユーザーに即時配信するのは危険です。チャンネル設計・段階的ロールアウト・自動ロールバックまで、累計5,000万DLの運用で固まった配信アーキテクチャを実装コード付きで共有します。
開発ツール2026-08-09
Hermes バイトコードの差分更新を実測する — モジュール1本の追加が更新サイズを29倍にした
2.4MB の Hermes バイトコードで OTA 差分を実測しました。1行の変更は 2,104 バイト、モジュールを1本足すと 61,197 バイト。よく言われるモジュールID安定化はほぼ効かず、効いたのは別の2つでした。
開発ツール2026-06-28
EAS Update を少人数から配り、クラッシュ率で自動的に止める
OTA 更新は一瞬で全員に届くからこそ、悪い更新も一瞬で全員に届きます。EAS Update を少人数(カナリア)から配り、クラッシュ率を見て広げるか止めるかを自動で判断し、最後は端末側で安全網を張る設計を、動くコードでまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →