Skip to content

chore: upgrade example app to Expo SDK 54 and align core dependencies#4942

Open
azizbecha wants to merge 4 commits into
callstack:mainfrom
azizbecha:chore/expo-sdk-54
Open

chore: upgrade example app to Expo SDK 54 and align core dependencies#4942
azizbecha wants to merge 4 commits into
callstack:mainfrom
azizbecha:chore/expo-sdk-54

Conversation

@azizbecha
Copy link
Copy Markdown
Collaborator

Motivation

The example app was pinned to Expo SDK 52. This bumps it to Expo SDK 54 and
aligns the root dev dependencies (react, react-dom, react-native,
react-native-safe-area-context, @react-native/babel-preset,
react-test-renderer) with the versions that SDK 54 ships, so the example app
and the library build/test against a consistent toolchain.

Also includes some cleanup that came up along the way:

  • Removed deprecated app.json fields (privacy, packagerOpts).
  • Switched runtimeVersion from the hardcoded exposdk:52.0.0 to the
    { "policy": "sdkVersion" } policy.
  • Replaced StyleSheet.absoluteFill (a style array) with
    StyleSheet.absoluteFillObject where it was being spread into a
    StyleSheet.create object — spreading the array form is incorrect and the
    object form is what's intended.

Related issue

N/A

Test plan

  • yarn lint, yarn typescript, yarn test pass.
  • Build the example app with Expo SDK 54 (iOS / Android / web) and verify
    ActivityIndicator, BottomNavigation, FABGroup, Menu, Modal and
    TouchableRipple still render/layout correctly.

azizbecha added 4 commits May 11, 2026 13:45
- example: expo ~54.0.34, react-native 0.81.5, expo-* patch bumps,
  babel-preset-expo ~54.0.10
- core: react-dom 19.1.0, react-test-renderer 19.1.0,
  react-native-safe-area-context ~5.6.0, @react-native/babel-preset ^0.81.5
- regenerate yarn.lock
Drop "privacy" and "packagerOpts" — both removed/ignored in modern
Expo SDKs and flagged during the SDK 54 upgrade.
StyleSheet.absoluteFill is an opaque registered-style id, not an object,
so spreading it into a StyleSheet.create() block fails type-checking
(TS2698) under the react-native 0.81 type definitions. Use
absoluteFillObject for the spread sites.
The app was upgraded to SDK 54 but `runtimeVersion` was still pinned to
`exposdk:52.0.0`. Switch to the `sdkVersion` policy so the runtime version
tracks the installed Expo SDK automatically and matches Expo Go / EAS Update.
@callstack-bot
Copy link
Copy Markdown

Hey @azizbecha, thank you for your pull request 🤗. The documentation from this branch can be viewed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants