Upgrade to Expo SDK 57 so npx expo run:ios works with Xcode 27 - #44
Merged
Merged
Conversation
With Xcode 27, `npx expo run:ios` fails on Expo SDK 54 before it even looks at devices: Xcode 27 replaced Simulator.app with DeviceHub.app, and the SDK 54 CLI still checks for Simulator.app. The fix is only in the SDK 56+ CLI, so move the sample to SDK 57. - expo 54 -> 57, react-native 0.81.5 -> 0.86.3, react 19.2.3, and all Expo-managed packages aligned with `npx expo install --fix` - @config-plugins/react-native-webrtc 13 -> 15 (supports SDK 56+) - @livekit/react-native-expo-plugin 1.0.1 -> 1.0.3 (fixes the config-plugins import that broke on SDK 57) - typescript 6.0 as a dev dependency only; drop the stray runtime entry - CI on Node 22, required by react-native 0.86 and Metro - useThemeColor: ColorSchemeName now includes 'unspecified'; treat everything except 'dark' as light - ControlBar: derive the track reference with useMemo instead of setState inside an effect (new react-hooks lint rule) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
davidliu
approved these changes
Sep 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
With Xcode 27,
npx expo run:iosfails right away on this sample, before it even looks at devices:Xcode 27 removed
Simulator.appand replaced it withDeviceHub.app. The Expo CLI that ships with SDK 54 still checks forSimulator.appfirst, even when you build for a real phone with--device. Thexcode-selecthint in the error message does not help.Expo fixed this in the CLI, but only for SDK 56 and newer (expo/expo#46757). SDK 54 and 55 will not get the fix. So the sample has to move to a newer SDK for the documented command to work with a current Xcode.
Changes
npx expo install --fix: react-native 0.81.5 -> 0.86.3, react 19.2.3, expo-router 57, reanimated 4.5.1, and the rest of the Expo-managed packages@config-plugins/react-native-webrtc13 -> 15 (the release for SDK 56+)@livekit/react-native-expo-plugin1.0.1 -> 1.0.3 (needed on SDK 57, fixes the config-plugins import)useThemeColor:ColorSchemeNamecan now be'unspecified', so treat anything but'dark'as lightControlBar: build the track reference withuseMemoinstead of callingsetStateinside an effect (newreact-hooks/set-state-in-effectlint rule)