OpenAIExpo2026/05/22 14:00

How to upgrade to Expo SDK 56

要点だけを先に読めるように短く再構成したセクションです。

元記事

Quick Digest

要約

要点だけを先に読めるように短く再構成したセクションです。

openaijamodel: gpt-5-mini-2025-08-07

Expo SDK 56 へのアップグレード

Key Points

  • React Native 0.85 対応
  • iOS に XCFramework 同梱
  • Hermes 差分配信がデフォルト

Summary

Expo SDK 56 が公開されました。主な互換性は React Native 0.85、React 19.2、Android API レベル 36、Xcode 26.4+。最低対応 OS は引き続き Android 7+ と iOS 16.4+ です。本稿はエンジニア向けに短く実務的な注意点と手順をまとめています。

Key Points

  • バージョン確認
    • React Native 0.85 と React 19.2 が必須。依存関係を事前に確認し、changelog の破壊的変更を読む。
  • アップグレード支援(LLM)
    • expo/skills のアップグレードスキルを Claude Code などに追加して自動化を活用。作業は必ず別ブランチで行い、手動レビューを行う。
  • ネイティブビルド高速化
    • iOS: 複雑モジュールはプリビルド XCFramework を同梱(デフォルト有効)。ローカルで無効化する場合は EXPO_USE_PRECOMPILED_MODULES=0 を設定。
    • Android: expo-build-properties の android.usePrecompiledHeaders オプトインで CMake のコンパイル高速化。
  • Expo Go と開発ビルド
    • App Store / Play ストアでの Expo Go は未提供。開発中は開発ビルドへ移行(npx expo run:android / ios、eas go、TestFlight 等)して作業を安定させる。
  • 更新配信(expo-updates)
    • Hermes バイトコード差分配信(bsdiff)がデフォルト有効。無効にするには app.json の updates ブロックで "enableBsdiffPatchSupport": false を設定。
  • インライン Expo モジュール
    • プロジェクト内にネイティブモジュールを直接定義可能(Android Studio/Xcode で開発可能)。実験や逐次追加に便利。
  • New Architecture の取り扱い
    • SDK 55 以降は New Architecture のみ対応(旧アーキテクチャ非対応)。SDK と New Architecture の同時切替は避け、まず New Architecture を SDK 54 上で検証してから SDK 56 に上げることを推奨。
  • トラブルシューティング/ログ取得
    • expo-mcp のツール(build_logs、collect_app_logs)や ADB Logcat / macOS コンソールを活用。ビルド失敗時はログを収集して原因を切り分ける。
  • 問題の報告
    • 最速で解決するには最小再現レポジトリ(npx create-expo-app から派生)を添えて GitHub issue を作成する。

実際の手順は: 1) changelog を読む → 2) 別ブランチ作成 → 3) expo/skills で自動化 → 4) 開発ビルドで検証 → 5) 本番ビルド・デプロイ、の順で進めてください。

Full Translation

翻訳

原文の流れを保ったまま読める翻訳セクションです。

openaijamodel: gpt-5-mini-2025-08-07

Expo SDK 56 にアップグレードする方法

概要

Expo SDK 56 がリリースされました。主な対応は以下のとおりです:React Native 0.85、React 19.2、Android API level 36、Xcode 26.4 以上。最小サポート OS は従来通りで、Android 7+ と iOS 16.4 以上が対象です。詳細は changelog をご確認ください。

各 SDK はベータ期間と幅広いテストを経て公開されますが、アプリごとに固有の複雑さがあるため、アップグレード時には個別対応が必要になることがあります。本記事では SDK 56 への移行で特に注目すべきポイントと、一般的なアップグレードの注意点をまとめます。

SDK 56 にアップグレードするときに知っておくべき主な点

Claude Code(expo/skills)を活用してアップグレードを補助

  • Expo チームは日常の作業で Claude Code を利用しており、共通タスクを補助するスキルを expo/skills ライブラリで公開しています。アップグレード用のスキルは、パッケージバージョンの更新に加えて、ブレイキングチェンジの対応、古い設定のクリーンアップなどを自動化します。
  • ターミナル上の Claude Code に次を実行してスキルマーケットプレイスを追加します:
    • /plugin marketplace add expo/skills
    • つづけて /plugin install expo
  • Claude 再起動後、自然言語で「SDK をアップグレードして」と依頼できます。正しくインストールされていれば、Claude が expo/skills を参照して処理を開始します。
  • 他のエージェントにインポートするには: bunx skills add expo/skills
  • 注意:作業は常に別ブランチで行い、マージ/デプロイ前に人間のレビューを行ってください。LLM は万能ではありません。

ネイティブビルドの高速化

  • iOS: SDK 56 では、複雑な Expo モジュール向けに事前ビルド済み XCFramework が同梱され、iOS のビルドが高速化されています。ローカルビルド・EAS Build ともにデフォルトで有効です。無効化するには、ローカルでは環境変数 EXPO_USE_PRECOMPILED_MODULES0 に設定し、EAS Build でも同様に環境変数を追加します。
  • Android: expo-build-properties に新しいオプション android.usePrecompiledHeaders が追加され、CMake のプリコンパイルヘッダを C++ の codegen 出力に適用できます(要 opt-in)。これにより Android での CMake コンパイル時間が大幅に短縮されます。

Expo Go の状況

  • SDK 56 用の Expo Go は Apple App Store / Google Play Store で配信されていません。配信再開の時期は未定で、進捗は SDK 56 changelog で随時更新します(参考: “Expo Go and the App Store in May 2026.”)。
  • Expo Go は学習や素早い開始のためのツールです。この移行期間を機に、ストアに出すアプリを作るための development build へ移行することを推奨します。
  • Android では Expo CLI から SDK 56 の Expo Go をインストールできます。iOS では TestFlight External Beta か eas go コマンドで SDK 56 の Expo Go ビルドを作成し、自分の TestFlight チームへアップロードしてください。

Hermes バイトコード差分配信(diffing)

  • SDK 55 で導入された opt-in の Hermes バイトコード差分配信(expo-updates / EAS Update)は、SDK 56 ではデフォルトで有効になりました。これにより、毎回フルバンドルをダウンロードする代わりに、既存のバイトコードに対するバイナリパッチをダウンロードします。
  • 無効化するには、app.jsonupdates ブロックで "enableBsdiffPatchSupport": false を設定してください。詳しくは expo-updates API リファレンスを参照してください。

Inline Expo Modules

  • プロジェクト構造内に直接 Expo モジュール(inline modules)を定義できるようになりました。これにより、ネイティブコードの実験や開発が容易になります。Android Studio / Xcode / 任意の IDE から開発できます。詳細は inline modules reference とチュートリアルを参照してください。

アップグレード時の実践的なヒント

  • スキルを使う!: もう一度言います。expo/skills をあなたの好みの LLM に追加して、アップグレード作業を補助させてください。

  • Expo MCP と併用してトラブルシュート

    • Expo MCP は Claude Code、Codex、Cursor などと併用できるツールです。
    • EAS ビルドが失敗したら build_logs ツールでビルドログを取得して AI と解析してください。
    • expo-mcp パッケージをインストールすれば、collect_app_logs ツールでエミュレータ/シミュレータから native logcat / macOS console ログを取得できます。
  • changelog を確認する

    • ほとんどの SDK リリースには既知のブレイキングチェンジや、アプリ向けに設定調整が必要な変更点の一覧があります。アップグレード前に読んでおくのが最適ですが、コンパイルエラーやクラッシュが出たときはアップグレード後に読むのも重要です。
  • Expo Go よりも development build を使う理由

    • Expo Go は自動的にアップデートされるため、手元で急いでアップグレードする必要を感じる場合があります。development build を使えば、QR スキャンでローカル開発ができ、しかし自分のアプリなので Expo Go の自動アップグレードで途切れません。
    • もし Expo Go を使い続けるなら、必ずしもストアの最新バージョンを使う必要はなく、https://expo.dev/go から過去バージョンをダウンロードして Android デバイスや iOS シミュレータで使用できます(注: iOS デバイスでは App Store 制限により不可)。
    • Expo Go は JavaScript の実行は可能ですが、app.json / app.config.js の多くの設定を反映できません。ネイティブに手を加える必要がある設定は再現できないため、本番に近い検証が必要なら development build を推奨します。
    • 開発用に EAS 無料プランで複数の development build を作る余地がありますし、ローカルビルドも可能です: npx expo run:android または npx expo run:ios

New Architecture に関するアドバイス

  • SDK 54 が Old Architecture を最後にサポートした SDK です。SDK 55+(React Native 0.83+)は New Architecture のみをサポートします。まだ New Architecture に移行していない場合は、今が移行の好機です。
  • react-native-reanimated v4@shopify/flash-list v4 のような主要パッケージの最近のバージョンは New Architecture のみをサポートしています。
  • 注意点:Expo SDK と New Architecture の導入を同時に行うのは避けてください。両方を同時に変えると原因の切り分けが難しくなります。
  • 推奨手順:まず SDK 54 上で New Architecture にアップグレードし、development build を作って確認します(必要なら New Architecture troubleshooting guide を参照)。New Architecture が安定してから SDK 56 にアップグレードし、新しい development build を作って SDK アップグレードを単独で検証します。

トラブルシューティングとサポート

  • トラブルシュート用のガイド一覧ページを用意しています。ビルドエラー、クラッシュ、パフォーマンス問題など、症状に応じて手順が異なります。
  • ネイティブのクラッシュや OS が報告するエラーを特定するために、ADB Logcat や macOS console のようなツールでネイティブエラーを見つけることは非常に有効です。

問い合わせ・バグ報告のベストプラクティス

  • 最も効果的な報告方法は、最小限の再現手順(minimal reproduction)を含む Github issue です。npx create-expo-app で作成したデフォルトテンプレートをベースに、問題を再現するのに十分な最低限のコードを含めたリポジトリへのリンクを送ってください。
  • 最小限の再現を作ることは手間に見えるかもしれませんが、15〜30 分で作れば、実際のアプリで何時間もデバッグするよりもずっと効果的なことが多いです。Claude のような AI ツールは最小再現の作成を手伝ってくれます。
  • すぐに議論したい場合は、Discord、Reddit、Bluesky などのコミュニティで相談するのも有効です。スクリーンショットや動画、影響を受けるプラットフォーム、具体的に何が起きているかを共有してください。
  • アップグレードプロセス全体に関する詳細なフィードバックも歓迎します。サポートページ経由のメッセージも常に確認しています。

Happy upgrading — SDK 56 をお楽しみください!