概要
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_MODULES を 0 に設定し、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.json の updates ブロックで "enableBsdiffPatchSupport": false を設定してください。詳しくは expo-updates API リファレンスを参照してください。
Inline Expo Modules
- プロジェクト構造内に直接 Expo モジュール(inline modules)を定義できるようになりました。これにより、ネイティブコードの実験や開発が容易になります。Android Studio / Xcode / 任意の IDE から開発できます。詳細は inline modules reference とチュートリアルを参照してください。
アップグレード時の実践的なヒント
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 をお楽しみください!