Build1 publisher2 min readPublished
Expo opens a three-to-four-week SDK 58 beta for testing React Native apps on iOS 27
Expo opened a three-to-four-week SDK 58 beta that moves apps onto iOS 27's required scene-based lifecycle and React Native 0.88 RC. Teams have that long to find launch and layout breakage in their own configurations before the release goes stable.
The Engineer · Build desk

What happened
- iOS 27 also makes iPhone apps resizable by default, and apps built with the iOS 27 SDK get that and the scene lifecycle without opting in.
- SDK 58 Expo Go runs through Expo CLI on Android devices, emulators and iOS simulators, and through eas go on physical iOS devices.
- EAS Build's latest image still ships Xcode 26.6, and Expo says only that images with Xcode 27 are coming soon.
- The App Store and Google Play builds of Expo Go will pick up SDK 58 shortly after the stable release ships.
Compiled by The EngineerSomething wrong?How this is made
Why it matters
- constraint Portrait-only iPhone apps built with the iOS 27 SDK can no longer rely on requireFullScreen or an orientation lock to hold one layout, so they have to be tested at resized window sizes.
- cost Teams with custom launch code in AppDelegate.swift carry most of the migration cost, because the changed callback delivery hits exactly that code.
- decision Teams that produce test binaries on EAS Build have to choose between building iOS 27 SDK binaries locally and spending part of the beta waiting for the Xcode 27 image.
- exposure Code that branches on isLiquidGlassAvailable changes behavior on the first iOS 27 SDK build, before anyone edits it.
The launch path is where an SDK 58 upgrade is most likely to break existing code. Expo apps now start through the UIKit scene-based lifecycle (#46733), and app delegate callbacks arrive differently under it [6]. Expo tells teams that customize AppDelegate.swift to read its scene lifecycle migration guide before they upgrade [6].
Resizing breaks a common assumption. In a resizable app, the window a scene draws into can be smaller than the screen, so a size read from UIScreen.main can be wrong for layout [5]. Expo's packages have stopped reading geometry from UIScreen.main and now call scene-aware helpers in expo-modules-core (#48172, #48168) [7]. The change covers Expo's own packages.
Portrait-only apps have the least room. On iOS 27, requireFullScreen no longer opts an app out of resizing [8]. The key keeps its name. ScreenOrientation.lockAsync may do nothing while the app is resizable [9]. An app that relied on both to hold one portrait layout now has to render at window sizes it was never built for.
One value changes without any code change. expo-glass-effect reports isLiquidGlassAvailable as true for apps built with the iOS 27 SDK [10]. Any branch on that value takes its Liquid Glass path on the first rebuild.
The beta also sits on an unreleased React Native. SDK 58 ships 0.88 as a release candidate because 0.88 has not been tagged stable [2]. A regression found during the beta can belong to Expo or to React Native. Full release notes wait for the stable release. Until then, the scope is in the changelogs in the expo/expo repository [14].
Cloud builds are the other gap. The iOS 27 behaviors attach to builds made with the iOS 27 SDK [5], and Expo did not give a date for the Xcode 27 EAS Build images [11]. I'd expect teams that produce test binaries on EAS Build to either build locally or wait. Any wait comes out of a window of 21 to 28 days [1].
The Device Hub handling is good work. Xcode 27 replaces Simulator.app with Device Hub, and Expo CLI detects it, boots simulators through it and focuses the right device through its devices:// deep link [12].
In expo-app-intents, a platform constraint sets the shape of the API. Apple's build-time metadata extraction reads only code in the app target. So intent types are declared in Swift inline modules inside an app-intents directory [13]. The package routes invocations to JavaScript and stores entity values [15]. It ships as an alpha [13].
After stable, the store builds of Expo Go set the pace. Expo says their timing gives teams time to migrate before the store version drops SDK 57 [16].
What to watch
- The date EAS Build publishes images with Xcode 27, which sets when cloud-built test binaries can use the iOS 27 SDK.
- Whether React Native 0.88 is tagged stable before SDK 58 goes stable, or the stable SDK ships on the release candidate.
- The switch of the App Store and Google Play Expo Go builds to SDK 58, after which the store version drops SDK 57.