---
title: Probably the Last Expo 54 Update (React Native Meetup #24)
tags:  #reactnative  
author: [Kouta Imanaka](https://convert.docswell.com/user/keima)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/PJR9XP3W79.jpg?width=480
description: https://react-native-meetup.connpass.com/event/381413/
published: February 12, 26
canonical: https://convert.docswell.com/s/keima/ZVMQ74-react-native-meetup-24
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/PJR9XP3W79.jpg)

Probably the Last Manual
Expo 54 Update
たぶん手作業で行う最後のExpo54アップデート
React Native Meetup #24
IMANAKA, Kouta
X: @pside


# Page. 2

![Page Image](https://bcdn.docswell.com/page/PEXQ634VJX.jpg)

Today&#039;s Topic
今日は、私のチームで開発しているアプリの
Expo54アップデート作業について説明します。
そして、将来どうなっていくのかという話をします。。。
Today, I&#039;ll explain the Expo 54 update process
for the app my team manages.
Then, I&#039;ll talk about what the future holds...


# Page. 3

![Page Image](https://bcdn.docswell.com/page/3EK91YZ5ED.jpg)

Expo54 Update…
0. Plan
1. New Architecture対応
2. Expo and it&#039;s core libs update
3. Code migration following libs update
4. Cleanup and EAS server update
5. Push
6. Publish
7. Pray


# Page. 4

![Page Image](https://bcdn.docswell.com/page/L73WQ9D175.jpg)

Planning Updates 📚
https://expo.dev/changelog/sdk-54
https://expo.dev/blog/expo-sdk-upgrade-guide


# Page. 5

![Page Image](https://bcdn.docswell.com/page/87DK9GPKJG.jpg)

The Biggest Hurdle 😱
:
Expo 54対応において、NewArch対応が最も困難な
New
Architecture
工程でした。
※ Expo54はLegacyArchをサポートする最後のバージョンです
●
●
newArchEnabled: true
Just update library version
○
●
実のところ・・・
Legacy Arch のまま更新停止していて、
New Archで動かすことが出来ないライブラ
リの大半は、少々のパッチを書くことで
Interop Layer により動作させることができ
る。
(Spread Operatorなどで同期的に
NativeModulesを触っていることが原因)
New version supports NewArch
Replace from Legacy Arch libs
to another New Arch replaced libs
https://github.com/reactwg/react-native-n
ew-architecture/blob/main/docs/enable-lib
raries.md#javascript-xyz--is-not-a-function-i
t-is-undefined


# Page. 6

![Page Image](https://bcdn.docswell.com/page/VJPKZ3N3E8.jpg)

The Core Upgrade: easy~ 😍
Main Command: expo install expo@^54.0.0 --fix
expo install expo@^54.0.0 --fix を実行し、パッケージバージョンを一括で整合させました。
Environment Sync: node and pkg manager (e.g. yarn) upgrade
SDKの要件に合わせて、このタイミングでパッケージマネージャーやNode.jsのバージョンも推奨環境
へアップデートしました。
Mid-Stream Check: expo install --check
作業の終盤に expo install --check を実行することで、バージョンの不整合を早期に発見・解消しまし
た。


# Page. 7

![Page Image](https://bcdn.docswell.com/page/2EVVW4KNEQ.jpg)

Specific Fixes &amp; Tweaks 💪
Remove Android 16
workaround fix
Disable Liquid Glass
Migrate expo-file-system&#039;s
new File object system
Expo53以前において、Android 16でカ
機能の実装を優先するため、一時的に
必須ではありませんが、
メラ権限に関する不具合が解消され
UIDesignRequiresCompatibility: true
expo-file-system の新形式 (Shared
た為、workaround を削除しました。
を設定し、Liquid Glassの適用を無効
Objects) に対応し、将来的な互換性
https://github.com/expo/expo/issue
化しました。
を確保しました。
s/39480
[expo-image-picker] launchCameraAsync doesn’t open the camera on
Android after the 2025-09-05 security update #39480


# Page. 8

![Page Image](https://bcdn.docswell.com/page/57GLD1Q5EL.jpg)

Cleanup &amp; Build 💄
Dependency
Cleanup
EAS Configuration
🚮 Clean cache
yarn dedupe を実行して重
EAS Buildの設定も忘れずに更
これらを忘れるとビルドエラー
複パッケージを削除し、依
新。ビルドイメージをExpo 54で
が出たり挙動が変になったりす
推奨されているバージョンへ変
ることがある。
更しました。
$ yarn expo prebuild --clean
Android:
$ yarn expo start --clear
ubuntu-24.04-jdk-17-ndk-r27b-sdk-55
$ yarn jest --clearCache
存関係ツリーをクリーンな
状態に保ちました。
iOS: macos-sequoia-15.6-xcode-26.2
IMO, avoid `latest` tag since our team can&#039;t allow application binaries
to change from accidental image updates.


# Page. 9

![Page Image](https://bcdn.docswell.com/page/4EQY1DKLJP.jpg)

That&#039;s ALL 🙌


# Page. 10

![Page Image](https://bcdn.docswell.com/page/KJ4WRZP571.jpg)

By the way… Expo Agent Skills
Expoチームが、Expoの開発に有用なスキルセット
を公開しています。
github.com/expo/skills
このSkillsを導入することで、パッケージの更新や
破壊的変更への対応といった作業をAIエージェント
に任せることが可能になります。


# Page. 11

![Page Image](https://bcdn.docswell.com/page/LE1YQR927G.jpg)

Agent Skills ?
必要なときだけ参照されるカスタムプロンプトやスクリプトをまとめたファイル構成
フォーマット。
文脈に応じて自動参照されたり、明示的にSkillsを指定して実行することも出来ま
す。
Claude Code で実装され、Codex CLI/AppだけでなくVS Code (1.109.0) でもサポート
されるようになりました。
上記ツールからインストールしやすくなっている他、
Skills Manager cliとSkills repositoryが提供されています(by Vercel)
$ npx skills add expo/skills


# Page. 12

![Page Image](https://bcdn.docswell.com/page/GEWGM1Q2J2.jpg)

NOTE: This is how my personal project is going.


# Page. 13

![Page Image](https://bcdn.docswell.com/page/47ZLQPW4J3.jpg)

A Complex Feeling 🙄
Relief
Nostalgia
手作業によるバージョン確認やchangelog
一方で、これまで培ってきた「手動アッ
の読み込み、設定の微調整といった苦労
プグレードのスキル」やトラブルシュー
から解放されたことに、大きな安堵を感
ティングの経験が不要になることに、寂
じています。
しさも感じます。


# Page. 14

![Page Image](https://bcdn.docswell.com/page/YJ6W6MGGJV.jpg)

Thanks!
ご清聴ありがとうございました！
Prompt: AIロボットの席巻で廃業する鍛冶師。中世設定だけどAIロボットはで
てくる。
A blacksmith going out of business due to the takeover of AI robots. It&#039;s a
medieval setting, but AI robots appear.


# Page. 15

![Page Image](https://bcdn.docswell.com/page/GJ5M6ZVXJ4.jpg)

Disclaimer: この資料はGemini Canvasを用いて生成されたものに対して、
人間による創造性をもって主張を強めるための手直しをしています。
Prompt:
&quot;たぶん手作業で行う最後のExpo54アップデート&quot; というタイトルでスライドを作成したい。
10分くらいのテック系勉強会での発表なので、1ページ当たり1分くらいで流せるような分量。
英語のみ理解出来る人が多いので、英語や視覚情報ベースで構成
- Expo54対応で実施したこと
- NewArch対応（いちばん大変だった）
- expoパッケージの更新（`expo install expo@^54.0.0 --fix`）（このタイミングでpkg managerとかnodeのバージョンを上げるとよい）
- expo-file-system の新形式(Shared Objects)対応 (Expo54対応の必須対応ではない)
- 不要になったworkaroundの削除（Android16でカメラパーミッション関連の不具合があったhttps://github.com/expo/expo/issues/39480 ）
- Liquid Glass 適用をいったんやめさせるために`UIDesignRequiresCompatibility: true` を設定
- 作業中に公開されたexpoを適用するために `expo install --check`
- yarn dedupeして掃除
- EAS: 忘れずにビルドイメージを推奨されているものに更新
- expoチームが Expoアップデートに特化した Agent Skills を公開している https://github.com/expo/skills/tree/main/plugins/upgrading-expo
- これをインストールしてAIにやらせればうまくいきそう
- 実際私の個人プロジェクトはなんとかなってしまった
- 苦労から解放された半面、アップデート作業に自信があった私としては複雑な心境です
- おわり


